CLB通过健康检查判断后端服务器的可用性。开启健康检查功能后,当后端服务器异常时,CLB会将请求分发到其他正常服务器;当服务器恢复正常时,CLB会将其恢复到服务中。健康检查机制提高了用户业务整体可用性,避免了局部服务器异常对总体服务的影响,是保证业务高可用性的关键要素。
配置健康检查前,建议您先了解CLB健康检查。
配置健康检查
您可以在添加监听时配置健康检查,通常情况下使用默认的健康检查配置即可。
- 在顶部菜单栏,选择实例所属的地域。 
- 在实例管理页面,找到目标实例,单击实例ID。 
- 在实例详情页,单击监听页签,单击添加监听或在目标监听操作列单击修改监听配置。 
- 根据配置向导完成监听配置,直至进入健康检查配置向导页面,健康检查默认开启。 
- 单击高级配置右侧的修改,完成以下健康检查配置。 - 健康检查配置 - 说明 - 健康检查协议 - 选择健康检查协议类型。监听为TCP协议时,健康检查协议可选TCP或HTTP协议。监听为UDP协议时,健康检查协议可选TCP、UDP或HTTP协议。监听为HTTP/HTTPS协议时,健康检查协议可选HTTP协议。 - TCP模式的健康检查是基于网络层探测,通过发送SYN握手报文来检测服务器端口是否存活。 
- UDP模式的健康检查通过UDP报文探测来获取状态信息。 
- HTTP模式的健康检查是通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。 
 - 健康检查方法 - (仅HTTP健康检查协议支持) - 支持HEAD和GET方法,默认使用HEAD方法。 说明- 若HEAD方法不支持或被禁用,可使用GET方法。 
- 使用GET方法时,Response长度超过8K会被截断,但不影响健康检查结果。 
 - 健康检查端口 - 健康检查服务访问后端时的探测端口。默认使用后端服务器的端口进行健康检查。 说明- 如果该监听配置的后端服务器组内的后端服务器的端口都不相同,则不需要配置检查端口。负载均衡系统会使用各自的后端服务器端口进行健康检查。 - 健康检查路径 - (仅HTTP健康检查协议支持) - HTTP健康检查默认由负载均衡系统向该服务器应用配置的默认首页发起HTTP请求。 - 如果您用来进行健康检查的页面并不是应用服务器的默认首页,需要指定具体的检查路径。 - 建议使用静态页面进行健康检查。 - 健康检查域名(仅HTTP健康检查协议支持) - 配置健康检查域名后,CLB会将该域名添加到请求头的 - Host字段。未配置域名时,请求头中不会附带- Host字段。- 部分应用服务器会校验 - Host字段,未配置域名会导致请求被拒绝,健康检查失败。因此服务器需要校验- Host字段,需配置健康检查域名以确保健康检查正常。说明- 负载均衡在执行健康检查时,不关注转发策略,而是按照监听器上配置的健康检查路径(默认使用根路径)进行检查。当您的后端服务需要根据不同的路径来响应不同的请求时,如果健康检查仍然按照默认或不匹配的路径进行,就可能导致健康检查失败。您可以根据需要在监听的转发规则中配置健康检查路径。 - 正常状态码 - (仅HTTP健康检查协议支持) - 选择健康检查正常的HTTP状态码。 - 默认值为http_2xx和http_3xx。 说明- 后端服务器访问正常但健康检查异常时,可以在健康检查配置中添加http_4xx和http_5xx作为正常状态码,避免因CLB实例返回 - 4XX或- 5XX状态码误判服务器状态。- 健康检查响应超时时间 - 每次健康检查响应的最大超时时间。 - 如果后端服务器在指定的时间内没有正确响应,则判定为健康检查失败。 - 健康检查间隔时间 - 进行健康检查的时间间隔。 - 负载均衡集群内所有节点,都会独立、并行地遵循该属性对后端服务器进行健康检查。由于各节点的检查时间并不同步,所以,如果从后端某一服务器上进行单独统计,会发现来自负载均衡的健康检查请求在时间上并不会遵循上述时间间隔。 - 健康检查健康阈值 - 云服务器从失败到成功的连续健康检查成功次数。 - 健康检查不健康阈值 - 云服务器从成功到失败的连续健康检查失败次数。 - 健康检查请求和健康检查返回结果(仅UDP健康检查协议支持) - 为UDP监听配置健康检查时,您可以在健康检查请求中输入请求的内容(例如youraccountID),在健康检查返回结果中输入预期的返回结果(例如slb123)。 - 同时在后端服务器的应用逻辑中加入相应的健康检查应答逻辑,如收到youraccountID的请求时,回应slb123。 - 此时,当负载均衡收到后端服务器发来的正确响应时,则认为健康检查成功,否则认为健康检查失败。这种方式能最大程度确保UDP健康检查的可靠性。 
- 单击下一步直至监听配置完成。 
查看健康检查状态
- 在顶部菜单栏,选择实例所属的地域。 
- 在实例管理页面,找到目标实例,单击实例ID。 
- 在实例详情页,单击监听页签,查看监听的健康检查状态。 - 健康检查主要包括以下状态: - 初始化:表示健康检查后端服务器列表初始化中。 
- 正常:表示不存在异常状态的后端服务器。 
- 异常:表示存在异常状态的后端服务器。 
- 未打开:表示健康检查未开启。 
 
- 单击对应监听后的异常或者初始化,可以查看监听健康检查为异常/初始化的监听/转发策略、服务器组、云服务器/端口、健康状态和异常原因。 
关闭健康检查
高频率的健康检查可能影响业务访问。建议通过降低检查频率、增大间隔等方式减少影响,但不建议关闭健康检查以保障业务持续可用。
您可以关闭健康检查功能,但关闭健康检查后,当后端某个ECS出现异常时,CLB还是会把请求转发到该异常的ECS上,造成部分业务不可访问。因此,建议一般情况下不要关闭健康检查。
- 在顶部菜单栏,选择实例所属的地域。 
- 在实例管理页面,找到目标实例并单击实例ID。 
- 在实例详情页,单击监听页签,单击添加监听或在目标监听操作列单击修改监听配置。 
- 根据配置向导完成监听配置,直至进入健康检查配置向导页面。 
- 关闭健康检查开关,单击下一步并提交确认。 
相关文档
- 如果您不了解CLB健康检查机制,您可参考CLB健康检查。 
- 如果您遇到CLB健康检查相关问题,您可参考CLB健康检查FAQ进行问题定位处理。 
- 您可通过CLB提供的健康检查日志功能,分析服务器健康检查日志数据,详情可参考存储和下载健康检查日志。