使用 caddy 替换 nginx

使用 caddy 替换 nginx

为什么要使用 Caddy 替换 Nginx?

  1. Caddy 可以自动化配置 HTTPS,并不需要我们做什么操作。像我们这种个人博客对于 SSL 证书的续期是非常麻烦的,Caddy 可以自动处理这些问题。
  2. Caddy 默认配置已经启用了HTTP/2。Caddy 会自动处理HTTP/2 的握手和协议协商,无需额外配置

你可以阅读文档,也可以参考本文的配置。 当然也有很多资料才查看,你可以去bilibili查看 技术蛋老师Caddy服务器之非官方入门教程

安装 Caddy(Ubuntu)

不同服务器的安装方式可能不同,本文以 Ubuntu 为例。详细内容在官方文档中有说明。

Caddy 的安装非常简单,直接使用以下命令即可:

bash
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

安装好后我们可以使用 caddy 看一下它的版本号,确认它安装成功

bash
caddy version

如果出现版本号就说明安装成功,可以进行下一步了。

禁止 nginx 开机启动,并停止 nginx服务

我们要确保 80 和 443 端口没有被其他服务占用。 所以在安装 Caddy 之前,我们需要确保没有其他服务占用这两个端口。

如果你的服务器上已经安装了 nginx,那么需要先停止 nginx 服务并禁止它开机启动。

bash
sudo systemctl stop nginx
sudo systemctl disable nginx

如果你没有安装 nginx,那么可以跳过这一步。

启动 Caddy 服务

我们可以使用下面的命令来查看 Caddy 服务的状态

bash
sudo systemctl status caddy

如果显示active (running),说明 Caddy 服务已经启动。

如果没有启动或者说 80或者 443 端口被占用,你可以尝试杀掉占用端口的进程

配置 Caddy

Caddy配置十分简单,你可以使用 Caddyfile 来配置网站的域名、根目录、反向代理等。当然你也可以使用 JSON 格式来配置。我这里使用 Caddyfile 来配置。

Caddy 的配置文件位于 /etc/caddy/Caddyfile,我们可以使用以下命令打开它:

bash
sudo vim /etc/caddy/Caddyfile

在 Caddyfile 中,我们可以配置网站的域名、根目录、反向代理等。以下是一个简单的配置示例:

caddyfile
# 这里是一个 Nuxt 网站,我们需要进行反向代理
www.whbbit.cn whbbit.cn { # 这里的配置可以让 www.whbbit.cn 和 whbbit.cn 都可以访问
    reverse_proxy localhost:3000
}

# 这里是一个静态网站
me.whbbit.cn {
    # Set this path to your site's directory.
    root * /code/dist
    # Enable the static file server.
    file_server
}

所有的域名都需要在 DNS 中解析到服务器的 IP 地址。

配置完毕后我们可以重启一下 Caddy 服务使配置生效:

bash
sudo systemctl restart caddy

如果没有报错,那么说明 Caddy 配置成功了。

新故事即将发生
如何使用 Vue Router 的类型化路由

评论区

评论加载中...