在 AlmaLinux 10 使用 Caddy 部署反向代理并自动签发 SSL 证书
1. 前言
在服务器运维中,反向代理与 HTTPS 是非常常见的需求。
Caddy 是一个现代化 Web 服务器,主打 自动 HTTPS,配置比 Nginx 简单得多。
本文将演示如何在 AlmaLinux 10 上安装并配置 Caddy,实现反向代理并自动申请 SSL 证书。
2. 系统准备
系统:AlmaLinux 10
一台公网服务器
已解析到服务器 IP 的域名(如
example.com)root权限或sudo权限
3. 安装 Caddy
安装依赖
sudo dnf install -y dnf-plugins-core
添加 Caddy 官方仓库
sudo dnf copr enable @caddy/caddy
安装 Caddy
sudo dnf install -y caddy
安装完成后,Caddy 会作为 systemd 服务运行。
4. 配置 Caddy
Caddy 的配置文件位于 /etc/caddy/Caddyfile。
示例:反向代理到本地服务
假设你有一个在本地运行的应用(例如 http://127.0.0.1:8080),并希望通过 https://example.com 访问:
编辑配置文件:
sudo nano /etc/caddy/Caddyfile
写入内容:
example.com {
reverse_proxy 127.0.0.1:8080
}
Caddy 会自动:
监听
example.com的 80 和 443 端口使用 ACME(Let’s Encrypt)自动申请并续签 SSL 证书
将请求转发到本地服务
127.0.0.1:8080
5. 启动与验证
启动并设置开机自启:
sudo systemctl enable --now caddy
检查运行状态:
systemctl status caddy
如果配置正确,访问 https://example.com 时,Caddy 会自动完成证书申请与安装。
6. 进阶配置
多域名反代
example.com, www.example.com {
reverse_proxy 127.0.0.1:8080
}
添加重定向(HTTP → HTTPS)
Caddy 默认会自动将 HTTP 重定向到 HTTPS,如果需要强制规则:
http://example.com {
redir https://example.com{uri}
}
指定日志路径
example.com {
reverse_proxy 127.0.0.1:8080
log {
output file /var/log/caddy/example.log
}
}
7. 常见问题
证书申请失败
检查域名是否正确解析到服务器公网 IP,且 80/443 端口未被防火墙或其他服务占用。服务未启动
使用journalctl -u caddy -xe查看日志,确认配置文件格式是否正确。多站点配置
可以在Caddyfile中写多个域名块,Caddy 会分别自动签发证书。
8. 总结
Caddy 在 AlmaLinux 10 上的部署非常简单,核心优势在于:
开箱即用的 自动 HTTPS
简洁的配置语法
支持反向代理、负载均衡、日志管理等功能
相比 Nginx,Caddy 对新手和小型项目更友好,适合快速部署。