我有一个负载平衡器服务器(使用nginx) lb1的networking,它在四个web服务器web1 , web2 , web3 , web4之间路由stream量。 这四个networking服务器被路由到在nginx中使用循环。
所有服务器都设置为max_fails = 1 , fail_timeout = 5s ,所以当服务器closures时,如果不在线,应该很快被忽略。
我应该注意到,如果所有四个Web服务器都在线,那么每个Web服务器的网页的平均响应时间大约在50-150ms之间。 只有一个Web服务器处于脱机状态时会出现此问题。 当一个人离线,一个用户尝试加载另一个页面时,响应时间从50ms到25s不等。 是的,25 秒 。
我很困惑,因为我认为循环法和fail_timeout设置会使得离线服务器被忽略。
另外,可能相关的注意事项:所有四个Web服务器都使用php5运行apache,并且四个之间启用了memcached。
看来你误解了fail_timeout参数。 请重新阅读文档 。
在指定次数的不成功尝试与服务器进行通信的时间内,应该认为服务器不可用;
这个参数并不限制每个这样的尝试的时间,而是指定在指定的时间段内应该发生多less事件来将服务器视为closures,并停止向其发送请求。
您应该调整proxy_connect_timeout , proxy_send_timeout和proxy_read_timeout指令,并增加 fail_timeout值。