Caddy:默认自动 HTTPS 的 Web 服务器
文章目录
- Caddy:默认自动 HTTPS 的 Web 服务器
- 1、这玩意儿是干嘛的
- 2、为什么要用它
- 3、核心能力
- 4、怎么安装
- 5、适合哪些人用
Caddy:默认自动 HTTPS 的 Web 服务器
Caddy 在 GitHub 上已经拿到 73,631 Star 了。
这是一个用 Go 写的 Web 服务器,2014 年由 Matthew Holt 开始开发。它的定位很明确:一个可扩展的服务器平台,默认启用 HTTPS。
1、这玩意儿是干嘛的
Caddy 主要做两件事:当 Web 服务器,以及当运行 Go 程序的平台。
作为 Web 服务器,它支持 HTTP/1.1、HTTP/2、HTTP/3,能自动申请和续期 TLS 证书。对外域名用 Let’s Encrypt 或 ZeroSSL,内网名称和 IP 则走它内置的本地 CA。配置可以用 Caddyfile,也可以用原生 JSON,还能通过 JSON API 动态修改。
作为平台,Caddy 的模块机制允许你扩展它的行为。标准发行版就带了 tls 和 http 两个核心模块,其他功能可以通过插件加入。
2、为什么要用它
配置 HTTPS 对很多项目来说都是个坎。你要申请证书、配置续期、处理 OCSP、保证证书不丢。Caddy 把这些事全包了,开箱就是 HTTPS。
它还把配置集中在一个文档里。不像有些服务器要同时管命令行参数、环境变量和配置文件,Caddy 的配置文档就是全部状态,管理起来更直接。
对 Go 开发者来说,Caddy 也是个不错的基底。它是用 Go 写的,没有外部依赖,甚至不依赖 libc,跨平台编译和部署都比较顺手。
3、核心能力
Caddy 的功能列表很长,挑几个实用的说:
- Caddyfile:类 NGINX 的文本配置格式,适合快速上手。
- JSON API:可以动态加载、热更新配置,不用重启进程。
- 配置适配器:不喜欢 JSON 可以转 Caddyfile、YAML、TOML、NGINX 配置等。
- 自动 HTTPS:默认开启,支持公网域名和内网 IP。
- 多协议:HTTP/1.1、HTTP/2、HTTP/3 一起支持。
- 模块化:插件机制让它能做很多额外的事。
- 无依赖:单个二进制文件就能跑。
4、怎么安装
最简单的方式是去 Releases 页面下载对应平台的可执行文件,放进 PATH 里就能用。也可以从源码编译:
gitclone<仓库地址>cdcaddy/cmd/caddy/ go build如果要加插件或者指定版本,官方提供了 xcaddy 工具:
xcaddy build详细安装步骤可以参考官方文档。
5、适合哪些人用
- 需要快速上线 HTTPS 站点的个人或团队
- 不想维护证书续期和 TLS 配置的运维
- 想用 Go 扩展服务器行为的开发者
- 需要同时支持现代 HTTP 协议的项目
Caddy 已经生产环境运行多年,官方说它处理过数万亿次 HTTPS 请求,管理过数百万张证书。如果你正在找一个配置简单、默认安全的 Web 服务器,它值得看看。
官方说它处理过数万亿次 HTTPS 请求,管理过数百万张证书。如果你正在找一个配置简单、默认安全的 Web 服务器,它值得看看。
