文章目录
- Caddy:一个默认全站 HTTPS 的 Web 服务器
- 1、 它解决什么问题
- 2、 核心特性
- 3、 怎么装
- 4、 和其他 Web 服务器比
- 5、 适合谁
Caddy:一个默认全站 HTTPS 的 Web 服务器
Caddy 在 GitHub 上拿到了 73,272 Star。
它是一个用 Go 写的 Web 服务器平台,核心卖点只有一个:默认开启 HTTPS。装上就能跑,不用折腾证书配置。
1、 它解决什么问题
用过 Nginx 或 Apache 的人都知道,配 HTTPS 是件麻烦事。申请证书、配置证书路径、处理自动续期、OCSP Stapling,每一步都可能出错,配错了网站直接挂。
Caddy 把这些全包了。装好之后,只要域名指向了这台机器,它自动帮你申请证书、配置 TLS、处理续期。ZeroSSL 和 Let’s Encrypt 都支持,内网环境还有自带的 CA。
2、 核心特性
多种配置方式。你可以用 Caddyfile 写简单的文本配置,也可以用原生 JSON 做精细控制,还能通过 JSON API 在运行时动态改配置,不用重启服务。
协议支持全面。HTTP/1.1、HTTP/2、HTTP/3 全部默认支持,不用额外配置。
模块化架构。Caddy 的功能全靠模块实现,想加什么能力就装什么模块,不需要的功能不会占用资源。它跑起来不依赖任何外部库,连 libc 都不需要。
生产可用。这不是个玩具项目。Caddy 在生产环境已经处理了万亿级请求,管理着百万级证书,在大规模站点部署中经过了验证。
3、 怎么装
最简单的方式:去 GitHub Releases 下载对应平台的可执行文件,放到 PATH 里就行。跨平台,Linux、macOS、Windows 都能跑。
想从源码编译的话,需要 Go 1.25.0 以上版本,克隆仓库后在cmd/caddy/目录下执行go build即可。
想加插件的话,用官方的 xcaddy 构建工具,它会自动处理依赖和编译流程,你在 main.go 里 import 需要的插件就行。
4、 和其他 Web 服务器比
Nginx 胜在生态和性能调优空间大,Apache 胜在模块丰富历史悠久。Caddy 的差异在于开箱即用的 HTTPS 和更现代化的配置管理。
如果你不想花时间折腾证书,不想在多个配置文件之间来回切换,Caddy 是个省心的选择。
5、 适合谁
- 个人项目或中小站点,想要快速部署 HTTPS
- 不想花时间维护证书的运维人员
- 需要在运行时动态调整配置的场景
- 对安全有要求、希望 TLS 配置始终正确的团队
Caddy 由 ZeroSSL(HID Global 旗下公司)支持开发,作者 Matthew Holt 从 2014 年开始做这个项目,现在已经有数百位贡献者参与。
发,作者 Matthew Holt 从 2014 年开始做这个项目,现在已经有数百位贡献者参与。