免费
2025-09-20
· 1 阅读
Caddy 安装与配置流程
🚀 Caddy 安装与配置流程(适用于 CentOS 7) 📦 1. 手动安装 Caddy 由于 Copr 仓库不可用,可通过官方下载 Caddy 二进制文件进行安装: sudo curl -o /usr/bin/caddy "https:…
作者 · 考串
# 资料整理
🚀 Caddy 安装与配置流程(适用于 CentOS 7)
📦 1. 手动安装 Caddy
由于 Copr 仓库不可用,可通过官方下载 Caddy 二进制文件进行安装:
sudo curl -o /usr/bin/caddy "https://caddyserver.com/api/download?os=linux&arch=amd64"
sudo chmod +x /usr/bin/caddy
caddy version # 验证安装是否成功
创建 systemd 服务(可选)
sudo nano /etc/systemd/system/caddy.service
添加以下内容:
[Unit]
Description=Caddy Web Server
After=network.target
[Service]
ExecStart=/usr/bin/caddy run --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
Restart=on-failure
User=root
Group=root
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable caddy
🔧 2. 停止 Nginx 服务以释放端口
Caddy 默认使用 80 和 443 端口,需先关闭 nginx:
sudo systemctl stop nginx
sudo systemctl disable nginx
sudo netstat -tuln | grep ':80\|:443' # 确认端口是否空闲
🌐 3. 配置 Caddy 代理 Flask 应用
创建或编辑配置文件:
sudo mkdir -p /etc/caddy
sudo nano /etc/caddy/Caddyfile
示例配置(替换为你的域名):
intumu.com {
root * /*/www/app/static
file_server
reverse_proxy 127.0.0.1:5000
}
格式化并验证配置:
sudo caddy fmt --overwrite /etc/caddy/Caddyfile
sudo caddy validate --config /etc/caddy/Caddyfile
📁 4. 设置静态文件权限
sudo chown -R caddy:caddy /*/www/app/static
sudo chmod -R 755 /*/www/app/static
🐍 5. 启动 Flask 后端(使用 Gunicorn)
安装并运行:
pip install gunicorn
cd /*/www/app
gunicorn -w 4 -b 127.0.0.1:5000 app:app
或配置为 systemd 服务:
sudo nano /etc/systemd/system/gunicorn.service
内容如下:
[Unit]
Description=Gunicorn instance for Flask app
After=network.target
[Service]
User=root
Group=root
WorkingDirectory=/*/www/app
ExecStart=/usr/bin/gunicorn -w 4 -b 127.0.0.1:5000 app:app
Restart=always
[Install]
WantedBy=multi-user.target
启用并启动:
sudo systemctl daemon-reload
sudo systemctl enable gunicorn
sudo systemctl start gunicorn
🔁 6. 优化 Caddy 重启策略
编辑服务文件:
sudo nano /etc/systemd/system/caddy.service
确保包含以下内容:
[Service]
ExecStart=/usr/bin/caddy run --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
Restart=on-failure
RestartSec=5
StartLimitIntervalSec=60
StartLimitBurst=3
User=root
Group=root
应用更改:
sudo systemctl daemon-reload
sudo systemctl reset-failed caddy
🔓 7. 开放防火墙端口
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
🚀 8. 启动 Caddy 服务
sudo systemctl start caddy
sudo systemctl enable caddy
✅ 9. 验证网站运行状态
curl https://intumu.com
caddy list-certificates # 查看证书状态
📌 说明
- 自动 HTTPS:Caddy 会自动为
intumu.com申请并续订 Let's Encrypt 证书。 - 端口冲突:如日志提示
443被占用,请确保 nginx 已停止。 - 排查问题:如仍无法访问,请查看日志:
bash journalctl -u caddy -b -e