error
在 HTTP 处理器链中触发错误,可选地提供一条消息和建议的 HTTP 状态码。
该处理器不会写入响应。相反,它用于与 handle_errors 指令配合使用,以触发自定义的错误处理逻辑。
语法
error [<matcher>] <status>|<message> [<status>] {
message <text>
}
- <status> 是要写入的 HTTP 状态码。默认是
500。 - <message> 是错误消息。默认没有错误消息。
- message 是提供错误消息的另一种方式;在消息为多行时很方便。
为澄清起见,第一个非匹配器参数可以是 3 位数的状态码,或者是错误消息字符串。如果它是错误消息,则下一个参数可以是状态码。
示例
在某些请求路径触发错误,并使用 handle_errors 写入响应:
example.com {
root * /srv
# 对某些路径触发错误
error /private* "Unauthorized" 403
error /hidden* "Not found" 404
# 通过提供 HTML 页面来处理错误
handle_errors {
rewrite * /{err.status_code}.html
file_server
}
file_server
}