是否可以根据上游代理的响应更改后备 error_page?
upstream serverA {
server servera.com;
}
upstream serverB {
server serverb.com;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for
proxy_set_header Host $host;
proxy_pass http://serverA;
proxy_intercept_errors on;
# if serverA returns 'hard' 404
# IE returns X-HARD-404=true header
return 404;
# else I would like to fallback to server-b
error_page 403 404 500 502 504 = @serverB;
}
Run Code Online (Sandbox Code Playgroud)
我想这样做的原因是我们的设置存在问题。通常我们向服务器 a 发送请求,如果返回 404,我们会要求服务器 b 返回页面。在这种情况下,我们不希望 server-b 返回其页面,并且我们希望显式返回 404,而不尝试 server-b。