今天正式和 caddy
说再见了,目前已经将 caddy
从我所有服务器上停用了。
最初决定使用 caddy
是因为它有以下几个优点:
-
单进程
-
自动签发
https
证书 -
反向代理配置简单
-
支持webdav
一直以来我也只用到这几功能:
-
自动签发 https 证书
-
反向代理
-
webdav
最近随着对 web
需求的不断增加, caddy
的局限性也越来越明显:
-
caddy v1
和caddy v2
两个版本非常混乱,网上能搜到资料非常少 -
官网放弃对
caddy v1
文档维护 -
caddy v2
的配置规则以json
为主,主要是来用给编程自动化用的,而不是给人手写的,即使提供了caddyfile
格式,也不能完全覆盖json
格式的功能。比如caddyfile
的admin
配置和json
中的admin
配置,就无法对应:json:
"admin": {▾ "disabled": false, "listen": "", "enforce_origin": false, "origins": [""], "config": { "persist": false, "load": {•••} }, "identity": { "identifiers": [""], "issuers": [{•••}] }, "remote": { "listen": "", "access_control": [{ "public_keys": [""], "permissions": [{ "paths": [""], "methods": [""] }] }] } },
caddyfile:
admin off|<addr> { origins <origins...> enforce_origin }
-
caddy v1
提供的url
处理功能相对较弱,caddy v2
增加了一些,同样还是远远不够。 -
caddy
的通用性还是太弱了,官方的文档写得不好,网上的资料也非常少,简单玩玩就好。
最后,当前我所有服务器都采用 nginx
作为 web
应用反向代理, https
证书采用 lego
签发。