Caddyfile指令
以下指令是 Caddy 的标准配置,可在 HTTP Caddyfile 中使用:
指令 | 说明 |
---|---|
abort | 中止HTTP请求 |
acme_server | 嵌入式ACME服务器 |
basicauth | 强制执行HTTP基本身份验证 |
bind | 自定义服务器的套接字地址 |
encode | 编码(通常是压缩)响应 |
error | 触发错误 |
file_server | 从磁盘提供文件 |
forward_auth | 将身份验证委托给外部服务 |
handle | 一组互斥的指令 |
handle_errors | 定义路由的错误处理器 |
handle_path | 像处理器,但去掉路径前缀 |
header | 设置或删除响应标头 |
import | 包括片段或文件 |
log | 启用访问/请求日志记录 |
map | 将输入值映射到一个或多个输出 |
method | 在内部更改HTTP方法 |
metrics | 配置Prometheus指标展示端点 |
php_fastcgi | 通过FastCGI服务PHP站点 |
push | 使用HTTP/2服务器推送将内容推送到客户端 |
redir | 向客户端发出HTTP重定向 |
request_body | 操作请求包 |
request_header | 操作请求头 |
respond | 向客户端写入硬编码响应 |
reverse_proxy | 强大且可扩展的反向代理 |
rewrite | 在内部重写请求 |
root | 设置站点根目录的路径 |
route | 将一组指令从字面上视为单个单元 |
templates | 对响应执行模板 |
tls | 自定义TLS设置 |
tracing | 集成OpenTelemetry的tracing |
try_files | 取决于文件的存在的重写 |
uri | 操作URL |
vars | 设置任意变量 |
语法
每个指令的语法如下所示:
directive [<matcher>] <args...> { subdirective [<args...>] }
<>
表示要由实际值替换的标记。
[]
表示可选参数。
...
表示延续,即一个或多个参数,或者多行。
除非另有说明,否则子指令始终是可选的,即使它们没有出现在[]
.
匹配器
大多数——但不是全部——指令接受匹配器标记,它可以让你过滤请求。匹配器标记通常是可选的。如果你在指令的语法中看到这一点:
[<matcher>]
然后该指令接受一个匹配器令牌,让你过滤该指令适用于哪些请求。
由于匹配器标记的工作方式相同,因此不会在每一页上都描述匹配器令牌的各种可能性,以减少重复。如果想了解详情,请统一参考匹配器文档。
指令顺序
许多指令操纵HTTP处理程序链。这些指令的默认顺序已经被硬编码到Caddy中,评估其顺序是很重要的事情:
map root header request_body redir # URI manipulation rewrite uri try_files # middleware handlers; some wrap responses basicauth request_header encode push templates # special routing & dispatching directives handle handle_path route # handlers that typically respond to requests abort error respond metrics reverse_proxy php_fastcgi file_server acme_server