【发布时间】:2018-04-15 12:12:59
【问题描述】:
使用 nginx auth_request 时,只接受 4 个返回码:2xx、401、403 和 500。处理这些需要设置error_page。这对auth_request 来说很好,但是所有返回这些代码的下游应用程序最终都将使用相同的error_page 处理方式。
示例:
location /test {
auth_request /foo;
error_page 500 /its-broke.html;
proxy_pass http://bar;
}
如果 auth_request 到 /foo 返回 500,则显示 its-broke.html。这是我想要的行为。但是,如果 bar 返回 500 its-broke.html 也会显示。我不想要这个。相反,我希望将bar 的500 error 响应传输到浏览器。
auth_request 将捕获任何5xx 并将其作为500 处理,所以我不能只让foo 返回520。这会导致以下错误,并且无论如何都会返回500:
auth request unexpected status: 520 while sending to client
有什么想法可以解决这个问题吗?我也找不到在代理通过之前取消设置 error_page 的方法。
【问题讨论】:
标签: nginx auth-request