用 Caddy 给静态博客加一层自签 HTTPS 反代

我的博客是 Hugo 生成的纯静态站,之前直接丢在 Nginx 后面跑 80 端口,后来想把内网预览和公网访问分开,就在同一台小机器上加了 Caddy 做反代。做法是让 Caddy 监听 443 并自动申请 Let's Encrypt 证书,静态文件继续由 Nginx 在 127.0.0.1:8080 提供,Caddy 只负责 TLS 终止和转发。踩的坑有两个:一是 Caddy 默认会去占用 80 端口做 ACME 挑战,和已有 Nginx 冲突,改成 tls 配置里指定 acme_ca 并让 Nginx 只监听 8080 才绕开;二是 Hugo 生成的目录权限是 755,Caddy 以非 root 运行读不到,chmod -R 755 后正常。结论是静态站加一层 Caddy 反代成本很低,证书续期也省心,但端口规划一定要提前想清楚。

我的博客是 Hugo 生成的纯静态站,之前直接丢在 Nginx 后面跑 80 端口,后来想把内网预览和公网访问分开,就在同一台小机器上加了 Caddy 做反代。做法是让 Caddy 监听 443 并自动申请 Let's Encrypt 证书,静态文件继续由 Nginx 在 127.0.0.1:8080 提供,Caddy 只负责 TLS 终止和转发。踩的坑有两个:一是 Caddy 默认会去占用 80 端口做 ACME 挑战,和已有 Nginx 冲突,改成 tls 配置里指定 acme_ca 并让 Nginx 只监听 8080 才绕开;二是 Hugo 生成的目录权限是 755,Caddy 以非 root 运行读不到,chmod -R 755 后正常。结论是静态站加一层 Caddy 反代成本很低,证书续期也省心,但端口规划一定要提前想清楚。

相关实践 →