0
假设配置:
upstream www {
server 192.168.10.80:6084;
server 192.168.10.81:6084;
server 192.168.10.82:6084;
server 192.168.10.83:6084;
keepalive 60;
check interval=2000 rise=2 fall=2 timeout=2000 type=http;
check_http_send "HEAD /html/health.html HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}
如果其中的一台上游服务器挂了,需要经过4秒左右,健康检查才会认为他不正常;在这4秒里面tengine 还是会把请求转发到异常服务器,访问日志会报几个“502”,这样就会影响到用户访问体验。如果能整合被动健康检查,当 tengine 负载均衡转发访问请求上游服务器,而发现上游服务器异常的时候,把访问请求转发给其他的上游服务器,可能速度会略微慢了一点,但至少还是能请求到数据,相对访问体验会好一些。 当然,也可以缩短主动健康检查的间隔时间以及失败次数,但是,访问层始终还是会出现访问不到的情况;而这样,无形中也会增加健康检查所消耗的系统资源。