用 Caddy 替换 Nginx 的静态站部署实测

把个人站从 Nginx 迁到 Caddy 2,主要是为了省掉手写 TLS 配置。做法:用 apt 装 Caddy,Caddyfile 只写域名、root 和 file_server 三行,反代 /api 用 reverse_proxy 指向本机端口;开启 encode gzip zstd 压缩,静态资源加 Cache-Control 长缓存并用 hash 文件名破缓存。踩坑两个:一是 Caddy 默认监听 80/443,和旧 Nginx 抢端口,先 systemctl stop nginx 再启动;二是 IPv6 AAAA 解析未同步,Let's Encrypt 签发时走 v6 超时,补上 AAAA 记录后自动续签正常。结论:配置量约为原 Nginx 的三分之一,证书自动续期免维护,适合单人维护的小站。

把个人站从 Nginx 迁到 Caddy 2,主要是为了省掉手写 TLS 配置。做法:用 apt 装 Caddy,Caddyfile 只写域名、root 和 file_server 三行,反代 /api 用 reverse_proxy 指向本机端口;开启 encode gzip zstd 压缩,静态资源加 Cache-Control 长缓存并用 hash 文件名破缓存。踩坑两个:一是 Caddy 默认监听 80/443,和旧 Nginx 抢端口,先 systemctl stop nginx 再启动;二是 IPv6 AAAA 解析未同步,Let's Encrypt 签发时走 v6 超时,补上 AAAA 记录后自动续签正常。结论:配置量约为原 Nginx 的三分之一,证书自动续期免维护,适合单人维护的小站。

相关实践 →