Caddy

开始

快速上手

不讲原理,直接给出能跑的配置。

这几篇的目标是让你尽快跑起来,尽量不做解释。跑通之后,强烈建议回头读参考文档,弄清楚服务器到底在做什么。

用 Caddyfile

当前目录建一个名为 Caddyfile 的文件,然后 caddy run。

静态站点
example.com {
	root * /var/www
	file_server
}

端口、协议、证书全部默认开启,不需要额外配置。

静态文件服务器

不想写配置文件的话,file-server 子命令开箱即用:

终端
caddy file-server --listen :9000 --browse

想直接上 HTTPS,加一个域名:

自动申请证书
caddy file-server --domain example.com

反向代理

把 80 端口的流量转给本机的 9000 端口:

终端
caddy reverse-proxy --from example.com --to 127.0.0.1:9000

写成配置文件则是:

Caddyfile
example.com {
	reverse_proxy 127.0.0.1:9000
}

API

先用 JSON 配好,再通过管理端点动态下发:

终端
curl localhost:2019/load \
  -H "Content-Type: application/json" \
  -d @caddy.json

curl localhost:2019/config/

所有改动都是零停机的,出错会回滚。

HTTPS

在站点地址里写上域名,其余交给 Caddy:

公网域名
example.com {
	respond "Hello"
}

没有公网域名也能拿到浏览器信任的证书:

本地域名
localhost {
	respond "Hello"
}