健康检查异常排查
更新时间:2024-08-29
场景介绍
负载均衡的健康检查是一种机制,用于定期检测后端服务器或服务的状态,来确保负载均衡器只将流量分配给那些处于正常工作状态的服务器。通过健康检查,负载均衡器可以实时了解后端服务的可用性,快速检测并隔离故障节点,确保系统的稳定性和性能。在有些时候,我们会遇到不明原因的健康检查异常情况,本文中将介绍几种可能的健康检查异常原因以及对应的排查方式。
处理步骤
检查RS安全组配置
通常情况下,后端服务器会默认放通来自BLB实例的健康检查流量,在少数不支持此能力的机型,或默认放通被关闭的情况下,健康检查流量可能会被后端服务器的安全组拦截,您需要在后端服务器所在安全组中放通入向来源段为:100.64.0.0/10(IPv4)或2403:ed40:f200::/40(IPv6)段,入向协议为健康检查所选择的协议,入向端口为配置的健康检查端口,未配置时,默认情况下是后端服务器提供服务的端口。之后,后端服务器可以正常放通这个范围的健康检查流量。
检查Host配置(7层访问)
在一些后端服务器配置中,为了规避异常请求,会屏蔽HTTP Header中Host为空的情况。在配置HTTP和HTTPS的后端开放协议时,将“Host头域”这一参数配置为预期的域名,将可以解决因这一情况导致的健康检查异常。
检查后端服务器端口服务配置
当健康检查端口为单独指定的情况下,可能与实际后端所提供的服务端口不一致,在这种情况下,需要在后端服务器上对应健康检查的端口起对应的服务,目的是为了能够正确响应BLB实例的健康检查请求。
- 该服务需要开放在0.0.0.0,可以使用
netstat -antup
(Linux)或netstat -ano
(Windows)命令进行确认。 - 该服务需要正确响应对应的健康检查请求协议或方法。
- 如已配置了预期响应的条件,服务返回的响应需要能够匹配该响应条件,才可以被视为成功。