为什么要使用 Caddy 替换 Nginx?
- Caddy 可以自动化配置 HTTPS,并不需要我们做什么操作。像我们这种个人博客对于 SSL 证书的续期是非常麻烦的,Caddy 可以自动处理这些问题。
- Caddy 默认配置已经启用了HTTP/2。Caddy 会自动处理HTTP/2 的握手和协议协商,无需额外配置
你可以阅读文档,也可以参考本文的配置。 当然也有很多资料才查看,你可以去bilibili查看 技术蛋老师 的 Caddy服务器之非官方入门教程
安装 Caddy(Ubuntu)
不同服务器的安装方式可能不同,本文以 Ubuntu 为例。详细内容在官方文档中有说明。
Caddy 的安装非常简单,直接使用以下命令即可:
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 看一下它的版本号,确认它安装成功
caddy version
如果出现版本号就说明安装成功,可以进行下一步了。
禁止 nginx 开机启动,并停止 nginx服务
我们要确保 80 和 443 端口没有被其他服务占用。 所以在安装 Caddy 之前,我们需要确保没有其他服务占用这两个端口。
如果你的服务器上已经安装了 nginx,那么需要先停止 nginx 服务并禁止它开机启动。
sudo systemctl stop nginx
sudo systemctl disable nginx
如果你没有安装 nginx,那么可以跳过这一步。
启动 Caddy 服务
我们可以使用下面的命令来查看 Caddy 服务的状态
sudo systemctl status caddy
如果显示active (running)
,说明 Caddy 服务已经启动。
如果没有启动或者说 80或者 443 端口被占用,你可以尝试杀掉占用端口的进程
配置 Caddy
Caddy配置十分简单,你可以使用 Caddyfile 来配置网站的域名、根目录、反向代理等。当然你也可以使用 JSON 格式来配置。我这里使用 Caddyfile 来配置。
Caddy 的配置文件位于 /etc/caddy/Caddyfile
,我们可以使用以下命令打开它:
sudo vim /etc/caddy/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 服务使配置生效:
sudo systemctl restart caddy
如果没有报错,那么说明 Caddy 配置成功了。
评论区
评论加载中...