Caddy 是什么?
Caddy 是一个现代化的 Web 服务器、反向代理和自动 HTTPS 平台。如果只用一句话来形容 —— Caddy 是'把 HTTPS 当成默认行为'的 Web 服务器。
和 Nginx、Apache 不同,Caddy 从诞生之初就围绕一个核心理念设计:安全应该是默认的,而不是额外配置的。
因此,使用 Caddy,你甚至可以在几乎零配置的情况下,直接上线一个带 HTTPS 的网站。
Caddy 解决了什么问题?
在传统 Web 服务器时代,一个'最小可用上线流程'通常是:
- 写服务器配置文件
- 配域名
- 申请证书(Let's Encrypt / 其他 CA)
- 配 HTTPS
- 设置自动续期
- 确保重启不翻车
这些步骤对新手不友好,对独立开发者也很耗精力。
Caddy 的目标很明确:
- ❌ 不让你纠结 HTTPS
- ❌ 不让你写冗长配置
- ❌ 不让你维护证书脚本
- ✅ 专注写业务
Caddy 的主要特性
自动 HTTPS(Auto HTTPS)
自动 HTTPS 是 Caddy 的招牌能力。你只需要将你的域名(如 example.com)指向了服务器 IP 地址,Caddy 会自动完成:
- 申请证书
- 配置 HTTPS
- 自动续期
- 安全加固(合理的 TLS 默认值)
你不需要显式配置 Let's Encrypt,甚至不需要知道 ACME 的细节。因为,在 Caddy 的世界里:HTTP 是'例外',HTTPS 是'常态'。
极简但强大的 Caddyfile
Caddy 使用一种非常直观的配置文件格式:Caddyfile。
示例:
example.com { root * /var/www/html file_server }
就这么几行,你已经拥有了:
- HTTPS 网站
- 静态文件服务
- 自动证书
相比之下,Nginx 的等价配置往往要长得多。
内置反向代理能力
Caddy 可不仅仅是静态服务器哦,它还是一个完整的反向代理:
example.com { reverse_proxy localhost:3000 }
常见用途包括:
- Web API 反向代理
- 前后端分离项目
- 单体服务的统一入口
模块化架构(Plugins)
Caddy 采用模块化设计:
- 核心功能精简
- 高级功能通过模块扩展
- 可以定制自己的 Caddy 构建版本
这让它在保持'简单'的同时,又不失扩展能力。
现代协议支持
Caddy 原生支持:
- HTTP/2
- HTTP/3(QUIC)
- WebSocket
- TLS 1.3
而且这些通常是默认开启的,而不是'高级选项'。


