[alibaba/tengine]ngx_http_upstream_check_module(建议同时整合被动健康检查功能)

2024-05-15 307 views
9
假设配置: 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 负载均衡转发访问请求上游服务器,而发现上游服务器异常的时候,把访问请求转发给其他的上游服务器,可能速度会略微慢了一点,但至少还是能请求到数据,相对访问体验会好一些。 当然,也可以缩短主动健康检查的间隔时间以及失败次数,但是,访问层始终还是会出现访问不到的情况;而这样,无形中也会增加健康检查所消耗的系统资源。

回答

3

感谢感谢,原来本身就有这个功能模块,只是默认只设置了error timeout。