2012-02-03 50 views
2

我们使用Nginx在两个上游应用服务器之间进行负载平衡,我们希望能够在部署到其上时取下其中一个。我们发现,当我们关闭其中一个时,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)。

任何想法我们可能会在这里失踪?

非常感谢。

回答

3

作为每文档...

max_fails = NUM​​BER - 之后它被认为是不工作的(由参数 fail_timeout分配)在与所述时间周期内的服务器通信 不成功尝试的次数。如果未设置,则 尝试次数为1。值为0会关闭此检查。什么 被认为是失败是由proxy_next_upstream或 fastcgi_next_upstream(除了http_404错误,其中不包括朝向max_fails的 )定义。

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

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

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