安装配置 Caddy 服务和反向代理
从最初搭建网站和 Docker 开始就一直在用 Nginx 做反向代理,Nginx 非常好用,做反代申请 SSL 证书都很方便。最近接触到 Caddy,发现 Caddy 也很简单易用,虽然没有 GUI,但是编辑配置文件相当简单,新手也可以一学就会。
Caddy 是一个强大、可扩展的开源 Web 服务器,使用 Go 语言编写。它旨在简化 Web 托管,使其变得简单易用。
Caddy的主要特点包括:
- 自动 HTTPS - 默认为所有站点启用 TLS 加密
- 在线配置 API - 可以通过 RESTful API 动态配置
- 简单易用 - 配置简单,无需复杂设置
- 高性能 - 支持 HTTP/2 等现代 Web 技术
- 跨平台 - 可在 Linux、macOS、Windows 等系统上运行
- 可扩展 - 支持插件扩展功能
这篇教程会简单地讲一下 Caddy 的安装和配置。
- 在 Ubuntu 和 Debian 上安装 Caddy
可以试着用下面命令直接安装,有的 Linux 系统包里包括 Caddy,可以直接安装
sudo apt install caddy
如果上面命令出现错误,提示没有发现安装包,可以按照下面的命令进行安装
# 安装依赖
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
# 添加 Caddy GPG key
sudo curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
# 添加 Caddy repository to sources list
sudo 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
# 安装 Caddy
sudo apt install caddy -y
安装完 Caddy 后,确认 Caddy 已启用
sudo systemctl enable caddy
sudo systemctl restart caddy
检查 Caddy 服务状态
sudo systemctl status caddy
- 配置 Caddy
编辑 Caddy 配置文件
sudo nano /etc/caddy/Caddyfile
可以删除掉配置文件里的全部内容。如果你自己搭建了个笔记的网站 (推荐这个笔记应用 https://github.com/usememos/memos),要用 memos.mydomain.com 来访问,只需要添加下面内容到配置文件里就可以
# 首先在域名服务商那里把域名指向这台主机的 IP
# memos 容器应用的默认端口是 5230
# 反向代理只需要下面三行
memos.mydomain.com {
reverse_proxy localhost:5230
}
# 如果还需要其他的反代,只需要按照上面添加就可以
abc.mydomain.com {
reverse_proxy localhost:10000
}
配置好之后别忘了重启 Caddy
sudo systemctl caddy
- 就是这么简单,而且都不用申请 SSL 证书,Caddy 会自动申请配置 SSL 证书,访问域名自动就是 https,这一点感觉比 Nginx 还要方便,而且证书到期了 Caddy 还会自动延期,完全就是傻瓜式服务。