首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改Nginx在上游独角兽繁忙时返回的状态代码

更改Nginx在上游独角兽繁忙时返回的状态代码
EN

Stack Overflow用户
提问于 2012-06-07 15:58:37
回答 1查看 3.2K关注 0票数 5

我在独角兽前面用Nginx。当应用程序处于高负载下,并且所有独角兽工作人员都很忙时,nginx将返回502响应,说明网关配置错误。我同意这种行为,但在这种情况下,我希望nginx返回503响应代码(服务器繁忙,稍后再试),这是一个更合适的响应。

我看到了这个答案:Is it possible to change the HTTP status code returned when proxy_pass gateway is down in nginx?

描述如何重写从上游代理返回的一些状态代码:

代码语言:javascript
复制
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; 
}

但这有两个问题:

  1. 上游应用程序有时会为有效情况返回502响应码,这些响应代码应该保留
  2. 我不确信上游代理实际上正在返回这个错误的状态代码,更有可能nginx无法将该项放置在(tcp?)缓冲区,然后nginx返回误导性状态代码。

在这种情况下,我是否可以控制nginx返回的状态代码,以便它是503而不是502?

EN

回答 1

Stack Overflow用户

发布于 2012-06-12 15:08:31

您考虑过用后端服务器来解决这个问题吗?调整后端服务器接受的客户端数量,这样对它的请求通常成功或失败,并且不会陷入返回503的糖蜜状态。理想情况下,当后端服务器耗尽可用客户端时,您可以调优后端服务器返回503,而当后端服务器实际关闭时,Nginx将继续返回502。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10935471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档