Skip to content
返回云服务

Caddy 服务器(自动 HTTPS)

现代 Web 服务器,通过 Let's Encrypt 自动 HTTPS,简单 Caddyfile 配置,开箱即用 HTTP/3。

VPS 与自托管入门

为什么

Caddy 自动获取和续期 TLS 证书 —— 无需 certbot、cron、手动续期。Caddyfile 5-10 行即可实现带 HTTPS 的反向代理。

支持 HTTP/3、反向代理和静态文件,默认合理,适合简单自托管设置。

何时使用

想要零配置 HTTPS 和简单配置时使用 Caddy —— 适合个人网站、小型 SaaS 和原型。需要复杂路由、Lua(OpenResty)或已有基于 nginx 的多 server 块设置时用 nginx。

如何做

1. 安装 Caddy(官方 apt 源或下载二进制)。 2. 编写 Caddyfile,含域名和 reverse_proxy 或 file_server。 3. caddy validate 检查配置。 4. caddy start(或用 systemd 服务)。 5. 首次请求域名时 Caddy 自动获取证书。 6. DNS-01 挑战(通配符)用 DNS 插件。 ```bash apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list apt update && apt install caddy # 编辑 /etc/caddy/Caddyfile,然后: systemctl enable --now caddy ```

示例

Caddyfile 在主域提供静态站点并将 api.example.com 代理到 Node 应用,全部自动 HTTPS: ```caddyfile example.com { root * /var/www/site file_server } api.example.com { reverse_proxy 127.0.0.1:3000 header { X-Frame-Options DENY Referrer-Policy no-referrer } } ``` Caddy 自动处理证书获取、续期和 HTTP→HTTPS 重定向。 ```bash caddy validate --config /etc/caddy/Caddyfile caddy reload --config /etc/caddy/Caddyfile ```

常见问题

  • ⚠证书获取失败 —— 端口 80 和 443 须开放且域名须解析到服务器;Caddy 默认用 HTTP-01 需端口 80。
  • ⚠CDN 后 Caddy 无法获取证书 —— CDN 终止 TLS;用 Caddy 内部 CA 或设 tls { on_demand } 并用 'tls' 指令指向现有证书禁用自动 HTTPS。
  • ⚠配置未重载 —— 用 'caddy reload' 而非 'systemctl restart' 避免断开活动连接;先用 'caddy validate' 验证。

最佳实践

  • ✓用 Caddyfile(非 JSON)配置 —— 可读性远高且支持 'caddy reload' 零停机更新。
  • ✓通配符证书(*.example.com)用 DNS-01 挑战配 Caddy DNS 插件(caddy-dns/cloudflare),无需暴露端口 80。
  • ✓在 header 块添加安全头(X-Frame-Options、CSP、HSTS)—— Caddy 默认不添加,不同于某些加固 nginx 配置。

常见问题解答

什么是Caddy 服务器(自动 HTTPS)?它解决什么问题?

现代 Web 服务器,通过 Let's Encrypt 自动 HTTPS,简单 Caddyfile 配置,开箱即用 HTTP/3。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手Caddy 服务器(自动 HTTPS)?

两步即可跑通:① 安装 Caddy(官方 apt 源或下载二进制)。;② 编写 Caddyfile,含域名和 reverse_proxy 或 file_server。。建议先用免费套餐验证流程,再接入生产环境。

Caddy 服务器(自动 HTTPS) 最容易踩的坑是什么?

最高频的问题是:证书获取失败 —— 端口 80 和 443 须开放且域名须解析到服务器;Caddy 默认用 HTTP-01 需端口 80。。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

Caddy 服务器(自动 HTTPS) 的最佳实践有哪些?

Caddy 服务器(自动 HTTPS) 的最佳实践包括:用 Caddyfile(非 JSON)配置 —— 可读性远高且支持 'caddy reload' 零停机更新。;通配符证书(*.example.com)用 DNS-01 挑战配 Caddy DNS 插件(caddy-dns/cloudflare),无需暴露端口 80。;在 header 块添加安全头(X-Frame-Options、CSP、HSTS)—— Caddy 默认不添加,不同于某些加固 nginx 配置。。其中首条「用 Caddyfile(非 JSON)配置 —— 可读性远高且支持 'caddy reload' 零停机更新。」应作为团队默认规范写入 IaC 模板。

Caddy 服务器(自动 HTTPS) 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Caddy 服务器(自动 HTTPS) 多数提供免费套餐,先在免费额度内验证再放量。