用途:Caddy 是用 Go 编写的企业级 Web 服务器,默认自动配置 TLS 证书,支持现代 HTTP/3 与简洁配置语法。本技能用于在部署现代 Web 服务时提供 Caddy 相关协助,覆盖自动 HTTPS、Caddyfile 配置、反向代理与负载均衡。
主要能力:自动通过 Let's Encrypt / ZeroSSL 签发 HTTPS 证书,无需手动设置;HTTP/2 与 HTTP/3 反向代理;本地开发环境自动签发受信任的本地根证书;通过 REST API 或 caddy reload 实现零停机热重载;静态文件服务支持 zstd 与 gzip 压缩;结构化 JSON 访问日志与日志滚动;反向代理支持健康检查、故障转移与 round_robin 负载均衡策略;可配置安全响应头。
使用方式:以 Caddyfile 声明式配置,例如站点块中写 reverse_proxy localhost:3000、encode zstd gzip、file_server。常用命令:caddy validate --config /etc/caddy/Caddyfile 校验语法;caddy reload --config /etc/caddy/Caddyfile 零停机重载;curl http://localhost:2019/config/ | jq . 查询运行配置。SPA 路由可用 try_files {path} /index.html。
适用场景:自动化 TLS 与反向代理、微服务边缘代理、本地开发 HTTPS、静态前端托管、需要零停机更新配置的生产环境。
限制与注意事项:不要将内部 Admin API 端口 2019 暴露到公网;容器中需为 /data 挂载持久化存储,否则重启会重新申请证书;除非严格位于外部云负载均衡之后,否则不要禁用自动 HTTPS。常见问题:证书申请 400 多为 DNS A/AAAA 记录未指向服务器或 80/443 端口不可达;服务启动失败多为 Caddyfile 语法错误;502 多为上游服务未运行或仅监听容器内 localhost。官方文档见 Caddy Documentation。