当用于负载平衡时,Nginx不会失败

时间:2012-02-03 01:07:35

标签: nginx failover

我们正在使用Nginx在两个上游应用服务器之间进行负载均衡,我们希望能够在部署到它时将其中一个降低。我们发现当我们关闭一个时,Nginx没有失败到另一个。它不断发送请求和记录错误。

我们的上游指令的格式为:

upstream app_servers {
    server 10.100.100.100:8080;
    server 10.100.100.200:8080;
}

通过阅读Nginx文档我们的理解是,我们不需要明确指定“max_fails”或“fail_timeout”,因为它们具有合理的默认值。 (即max_fails为1)。

知道我们在这里可能缺少什么吗?

非常感谢。

1 个答案:

答案 0 :(得分:2)

根据文件......

  

max_fails = NUM​​BER - 尝试通信失败的次数   与服务器在时间段内(由参数分配)   fail_timeout)之后认为它不起作用。如果没有设定,   尝试次数是一次。值为0将关闭此检查。什么   被认为是失败是由proxy_next_upstream或   fastcgi_next_upstream(除了http_404错误,不计算   对于max_fails)。

根据文档,失败由proxy_next_upstreamfastcgi_next_upstream定义。

  

它不断发送请求和记录错误。

请检查日志记录的错误类型,如果不是默认值(错误或超时),那么您可能只想在proxy_next_upstream或fastcgi_next_upstream中定义它。