从 Nginx 迁移到 Caddy

适用场景

希望减少证书管理、简化配置,或需要自动 HTTPS 和更轻量的反向代理时,从 Nginx 迁移到 Caddy。复杂 rewrite/模块场景要先评估兼容性。

前置条件

步骤

  1. 导出并梳理 Nginx 配置:
nginx -T > nginx-full.conf
grep -nE 'server_name|location|proxy_pass|rewrite|return|ssl_' nginx-full.conf
  1. 编写 Caddyfile:
app.example.com {
    encode zstd gzip

    @api path /api/*
    reverse_proxy @api 127.0.0.1:8080

    root * /var/www/app
    try_files {path} /index.html
    file_server
}
  1. 本地验证配置:
caddy validate --config Caddyfile
caddy fmt --overwrite Caddyfile
  1. 在测试域名/端口启动,验证:
caddy run --config Caddyfile
caddy reload --config Caddyfile
  1. 切换流量:

验证

回滚

常见坑

相关命令