Exam 考串 Study Desk
注册
← 返回专栏
免费 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