Caddy拦截响应处理小记
简单小记,分享一下,主要还是针对 MinIO 异常的处理,其他服务应该也类似
之前配置 MinIO:
xxxx {
import ERR
import LOG "/var/log/caddy/minio.log"
@rootPath {
path /
}
handle @rootPath {
respond "EdgeONE 403 Forbidden" 403
}
reverse_proxy 127.0.0.1:9000
}
仅禁止访问/,且有问题使用 import ERR
兜底
(ERR) {
handle_errors {
redir https://dxgw-{err.status_code}.external.ysicing.net
}
}
之前没太注意,之前这种情况下,如果 MinIO 放回 400 的话是没法拦截的。这时候需要响应匹配器来干活了
域名 {
import LOG "/var/log/caddy/minio.log"
import ERR
@rootPath {
path /
}
handle @rootPath {
respond "EdgeONE 403 Forbidden" 403
}
reverse_proxy 127.0.0.1::9000 {
@error status 4xx
handle_response @error {
respond "EdgeONE 451 Forbidden" 451
}
}
}
在 handle_response
块内,可以使用任何其他指令,功能还挺强大的
