我们正在使用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)。
知道我们在这里可能缺少什么吗?
非常感谢。
答案 0 :(得分:2)
根据文件......
max_fails = NUMBER - 尝试通信失败的次数 与服务器在时间段内(由参数分配) fail_timeout)之后认为它不起作用。如果没有设定, 尝试次数是一次。值为0将关闭此检查。什么 被认为是失败是由proxy_next_upstream或 fastcgi_next_upstream(除了http_404错误,不计算 对于max_fails)。
根据文档,失败由proxy_next_upstream或fastcgi_next_upstream定义。
它不断发送请求和记录错误。
请检查日志记录的错误类型,如果不是默认值(错误或超时),那么您可能只想在proxy_next_upstream或fastcgi_next_upstream中定义它。