我有一个由一个负载均衡器服务器组成的网络(使用nginx) lb1,它在四个web服务器( web1、web2、web3、web4 )之间路由流量。这四个网络服务器被路由到在nginx中使用循环。
所有服务器都设置为max_fails=1和fail_timeout=5s,因此当服务器关闭时,如果服务器不在联机,则应该很快忽略它。
我应该注意,如果所有四个web服务器都是在线的,那么来自每个web服务器的网页的平均响应时间大约是50-150ms。当一个web服务器离线时,问题就会出现。当一个人离线时,一个用户试图加载另一个页面,响应时间从50 25s到25 s不等。是的,25秒。
我很困惑,因为我会认为循环和fail_timeout设置会使它成为这样,离线服务器就会被忽略。
附加的,可能相关的注意事项:所有四个web服务器都在使用php5运行apache,而且memcached在这四个服务器之间启用。
发布于 2016-08-12 18:34:09
您似乎误解了fail_timeout参数。请重读文献资料.
指定次数的不成功尝试与服务器通信的时间应视为服务器不可用;
该参数并不限制每次尝试的时间,而是关于在指定的时间段内应该发生多少次这样的尝试,以便将服务器视为停机,并停止将请求定向到服务器。
您应该调优proxy_connect_timeout、proxy_send_timeout和proxy_read_timeout指令,并增加fail_timeout值。
https://serverfault.com/questions/796539
复制相似问题