我在独角兽前面用Nginx。当应用程序处于高负载下,并且所有独角兽工作人员都很忙时,nginx将返回502响应,说明网关配置错误。我同意这种行为,但在这种情况下,我希望nginx返回503响应代码(服务器繁忙,稍后再试),这是一个更合适的响应。
我看到了这个答案:Is it possible to change the HTTP status code returned when proxy_pass gateway is down in nginx?
描述如何重写从上游代理返回的一些状态代码:
location / {
proxy_pass http://backend;
proxy_intercept_errors on;
error_page 502 503 504 =503 @proxyisdown; # always reply with 503
}
location @proxyisdown {
add_header Retry-After 500;
index my_pretty_error_page.html;
}但这有两个问题:
在这种情况下,我是否可以控制nginx返回的状态代码,以便它是503而不是502?
发布于 2012-06-12 15:08:31
您考虑过用后端服务器来解决这个问题吗?调整后端服务器接受的客户端数量,这样对它的请求通常成功或失败,并且不会陷入返回503的糖蜜状态。理想情况下,当后端服务器耗尽可用客户端时,您可以调优后端服务器返回503,而当后端服务器实际关闭时,Nginx将继续返回502。
https://stackoverflow.com/questions/10935471
复制相似问题