uwsgi_intercept_errors
`uwsgi_intercept_errors` 指令控制 NGINX 是否拦截 uWSGI 应用返回的错误。 — NGINX HTTP Core
uwsgi_intercept_errors
httpserverlocation
语法uwsgi_intercept_errors on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag
说明
`uwsgi_intercept_errors` 指令在启用时(设置为 'on')允许 NGINX 拦截来自 uWSGI 服务器的特定错误响应,并根据预定义策略进行处理,而不是直接将其传递给客户端。这通常包括诸如 404 和 500 之类的标准 HTTP 错误代码,使用户能够配置自定义错误页面、日志记录及其他在遇到此类响应时的行为。相反,当设置为 'off' 时,NGINX 会将 uWSGI 的响应不加修改地返回给客户端,这可能无法为错误请求提供用户友好的体验。 此指令可以在 `http`、`server` 或 `location` 上下文中使用,使其在应用特定需求和部署配置中具有灵活性。在开发者希望即使后端应用出现错误也能保持一致用户体验的场景下,将此指令设置为 'on' 是有益的,它可以在发生错误时为用户提供更专业且定制的响应,例如提供 HTML 错误页面而不是应用返回的原始错误信息。 此指令接受的参数包括布尔值,即 'on' 用于启用错误拦截,'off' 用于禁用。需要注意的是,该指令专门应用于 uWSGI 响应,其控制的行为对有效管理面向用户的错误非常重要。
配置示例
location /myapp {
uwsgi_pass myapp_backend;
uwsgi_intercept_errors on;
error_page 404 /custom_404.html;
error_page 500 502 503 504 /custom_50x.html;
}⚠
如果该指令设置为 'off',自定义错误处理将无法工作,来自 uWSGI 的原始响应可能会使用户感到困惑。
⚠
在拦截错误时,确保定义了合适的错误页面,以避免显示默认的 NGINX 错误页面。添加自定义错误页面时,确认这些页面已存在且引用正确。