配置适配器
Caddy 的原生配置语言是 JSON,但手写 JSON 既繁琐又容易出错。这就是为什么 Caddy 支持通过 配置适配器(config adapters) 使用其他语言进行配置。它们是 Caddy 的插件,可以让你使用偏好的格式编写配置,并为你输出 Caddy JSON。
例如,一个配置适配器可以将你的 NGINX 配置 转换为 Caddy JSON。
已知的配置适配器
以下配置适配器当前可用(其中一些是第三方项目):
使用配置适配器
你可以在命令行上通过在接受配置的大多数子命令中使用 --adapter 标志来指定配置适配器:
caddy run --config caddy.yaml --adapter yaml
或者通过 API 的 /load 端点:
curl localhost:2019/load \
-H "Content-Type: application/yaml" \
--data-binary @caddy.yaml
如果你只想获取输出的 JSON 而不运行它,可以使用 caddy adapt 命令:
caddy adapt --config caddy.yaml --adapter yaml
注意事项
并非所有配置语言都能与 Caddy 完全兼容;有些特性或行为无法很好地转换,或者尚未在适配器或 Caddy 本身中实现。
有些适配器做的是一对一的转换,比如 YAML->JSON 或 TOML->JSON。另一些是专为 Caddy 设计的,例如 Caddyfile。一般来说,这些适配器会始终可用。
然而,并非所有适配器在任何时候都能完美工作。配置适配器会尽最大努力以最高的保真度和正确性将你的输入转换为 Caddy JSON。因为这个转换过程并不保证在任何时候都完整且完全正确,我们不会称它们为“转换器”或“翻译器”。它们被称为“适配器”,因为它们至少会为你提供一个很好的起点,帮助你完成最终的 JSON 配置。
配置适配器可以输出生成的 JSON、警告和错误。如果没有错误,则输出 JSON。错误发生在输入有问题时(例如语法错误)。当适配过程中出现问题但不一定致命时,会发出警告(例如,不支持的特性)。对于带有警告的适配配置,建议谨慎使用。