- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
-
API参考
- 使用前必读
- API概览
- API版本选择建议
- 如何调用API
- API(V3)
- API(V2)
- API(OpenStack API)
- 应用示例
- 权限和授权项
- 历史API
- 附录
- SDK参考
- 常见问题
- 视频帮助
- 产品术语
-
更多文档
- 用户指南(阿布扎比区域)
- API参考(阿布扎比区域)
-
用户指南 (巴黎区域)
- 产品介绍
- 快速入门
- 负载均衡器
- 监听器
- HTTP/HTTPS监听器高级配置
- 后端服务器组
- 后端服务器(独享型)
- 后端服务器(共享型)
- 证书管理
- 访问控制管理
- TLS安全策略
- 标签管理
- 访问日志
- 监控
- 审计
- 权限管理
- 关于配额
-
常见问题
- 高频常见问题
- 为什么通过负载均衡无法访问后端业务?
- 如何检查弹性负载均衡服务不通或异常中断?
- 如何排查ELB的异常返回码?
- 弹性负载均衡器是否可以单独使用?
- ELB是否支持TCP长连接?
- 弹性负载均衡是否支持后端FTP服务?
- 弹性负载均衡分配的EIP是否为独占?
- 单个用户默认可以创建多少个负载均衡器或监听器?
- ELB权限和使用范围是什么?
- 当负载均衡器正在运行中是否可以调整后端服务器的数量?
- 弹性负载均衡是否可以添加不同操作系统的服务器?
- ELB添加后端的端口号是否可以不一致?
- ELB支持跨用户、跨VPC使用么?
- 负载均衡器的后端服务器可以反过来访问公网/私网负载均衡器上的端口吗?
- ELB能否实现前端是HTTPS协议,后端也是HTTPS协议?
- ELB所属的VPC和子网支持修改吗?
- 是否支持在业务不中断的前提下,将共享型负载均衡升级为独享型负载均衡?
- ELB对于IPv6网络的支持情况是怎样的?
- 如何检查弹性负载均衡前后端流量不一致?
- 如何检查请求不均衡?
- 如何检查弹性负载均衡业务访问延时大?
- 如何检查压测性能上不去?
- 负载均衡器
- 监听器
-
后端服务器
- 为什么后端服务器上收到的健康检查报文间隔和设置的间隔时间不一致?
- 使用ELB后,后端服务器能否访问公网?
- 为什么100开头的IP在频繁访问后端服务器?
- ELB可以跨区域关联后端服务器么?
- 公网负载均衡的后端服务器要不要绑定EIP?
- 如何检查后端服务器网络状态?
- 如何检查后端服务器网络配置?
- 如何检查后端服务器服务状态?
- 后端服务器什么时候被认为是健康的?
- 如何检查通过EIP访问后端云服务器?
- 为什么云监控服务统计的ELB活跃连接数与后端服务器上的连接数不一致?
- 为什么配置了白名单后还能访问后端服务器?
- ELB修改后端服务器权重后多久生效?
- 为什么开启跨VPC后端需要确保负载均衡所属子网至少拥有16个可用IP地址?
- 健康检查
- 获取源IP
- HTTP/HTTPS监听器
- 会话保持
- 证书管理
- 监控
- 修订记录
- API参考 (巴黎区域)
- 用户指南(吉隆坡区域)
- API参考(吉隆坡区域)
- 用户指南(安卡拉区域)
- API参考(安卡拉区域)
- 通用参考
链接复制成功!
健康检查异常如何排查?
问题描述
客户端通过负载均衡器访问后端服务器异常,负载均衡器的“后端服务器组”页签显示后端服务器的健康检查结果为“异常。”
背景介绍
ELB的健康检查通过向后端服务器发起心跳检查的方式来实现,检查过程中使用内网地址100.125.0.0/16通信。为了确保健康检查的正常进行,您需要确保服务器已经放通100.125.0.0/16网段的地址,使得ELB能够正常访问到后端服务器。
当健康检查探测到您的后端服务器异常时,ELB会将异常的服务器暂时移出后端服务器组,不再向异常的后端服务器转发流量。直到健康检查检测到后端服务器恢复正常时,ELB才会向此服务器继续转发流量。
- 当ELB后端服务器的健康检查状态处于异常状态时,ELB不会向该后端服务器转发请求。
- 当健康检查关闭时,ELB默认后端服务器正常在线,会将请求转发至后端服务器。
- ELB会使用100.125.0.0/16网段IP向后端服务器发送健康检查请求和正常的客户端请求。
- 当后端服务器的权重为0时,流量不会再转发到该后端服务器上,此时健康检查的状态无参考意义。
排查思路
以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。
如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。
相关修改配置的操作,修改完配置后需要等待一定的时间,配置才会生效,因为健康检查包含检查周期和阈值(根据默认配置为几十秒生效,如果健康检查恢复正常,在ELB关联的后端服务器基本信息界面可以看到健康检查状态是否正常)。

可能原因 |
处理措施 |
---|---|
健康检查配置 |
解决方法请参考检查健康检查配置。 |
服务器安全组配置 |
解决方法请参考检查服务器所在安全组。 |
子网ACL配置 |
解决方法请参考检查网络ACL规则。 |
后端服务器监听配置 |
解决方法请参考检查后端服务器是否正常。 |
后端服务器防火墙配置 |
解决方法请参考检查服务器防火墙。 |
后端服务器路由配置 |
解决方法请参考检查服务器路由。 |
后端服务器负载过大 |
解决方法请参考检查服务器负载。 |
后端服务器host.deny文件配置 |
解决方法请参考检查服务器host.deny文件。 |
检查健康检查配置
- 协议。
- 端口。
- 检查路径。如果是使用HTTP健康检查需要查看此参数,建议配置简单的静态HTML文件。
检查服务器所在安全组
- TCP、HTTP或HTTPS协议监听器:后端服务器所在的安全组入方向规则需要放通100.125.0.0/16网段,并在TCP协议中放通健康检查的端口。
- 健康检查端口与后端服务器业务端口相同:需要放通后端服务器的业务端口,例如80。
- 健康检查端口与后端服务器业务端口不同:需要放通后端服务器的业务端口和健康检查端口,例如80和443。
说明:
健康检查的协议和端口在配置的健康检查配置项提示框中获取。
图2 安全组入方向规则配置示例 - UDP协议监听器:不仅需要保证安全组入方向规则放通健康检查的协议、端口和100.125.0.0/16网段。还需要放通后端服务器所在安全组入方向的ICMP协议。
图3 安全组入方向规则放通ICMP协议示例
- ELB与后端服务器进行通信的网段为100.125.0.0/16网段,ELB流量转到后端服务器后,源IP会被转换为100.125的IP,发起健康检查的节点的IP就属于这个网段,所以后端服务器配置的安全组必须放通这个网段。
- 如果不确认是否是安全组问题,可以把安全组入方向规则的“协议”和“端口范围/ICMP类型”均放通Any测试下。
- UDP协议监听器,也可以参考使用UDP协议有什么注意事项?。
检查网络ACL规则
网络ACL是一个子网级别的可选安全层,通过与子网关联的出方向/入方向规则控制出入子网的数据流。网络ACL与安全组类似,都是安全防护策略,当您想增加额外的安全防护层时,就可以启用网络ACL。但是网络ACL默认规则会拒绝所有入站和出站流量,如果此网络ACL和负载均衡所属同一个子网,或者此网络ACL和负载均衡相关联的后端服务器所属同一个子网那么负载均衡的业务也会受到影响,收不到来自于公网或者私网的任何请求流量,或者会导致后端服务器异常。
您可以通过配置网络ACL入方向规则,放行100.125.0.0/16网段。
- 登录管理控制台。
- 在管理控制台左上角单击
图标,选择区域和项目。
- 在系统首页,选择“网络 > 虚拟私有云”。
- 在左侧导航栏选择“访问控制 > 网络ACL”。
- 在“网络ACL”列表区域,选择网络ACL的名称列,单击您需要修改的“网络ACL名称”进入网络ACL详情页面。
- 在入方向规则或出方向规则页签,单击“添加规则”,添加入方向或出方向规则。
- 策略:选择允许。
- 协议:和监听器协议一致。
- 源地址:此方向允许的源地址,填写100.125.0.0/16。
- 源端口范围:选择业务所在端口范围。
- 目的地址:此方向允许的目的地址。选择默认值为0.0.0.0/0,代表支持所有的IP地址。
- 目的端口范围:选择业务所在端口范围。
- 描述:网络ACL规则的描述信息,非必填项。
- 单击“确定”。
检查后端服务器是否正常
如果后端服务器的操作系统为Windows,请通过浏览器直接访问https://后端服务器的IP : 健康检查配置的端口。如果返回码为2xx或3xx,则表示以后端服务器正常。
- 您可以在后端服务器上通过以下命令查看后端服务器的健康检查端口是否被健康检查协议正常监听。
netstat -anlp | grep port
回显中包含健康检查端口信息并且显示LISTEN,则表示后端服务器端口在监听状态,如图4中表示880端口被TCP进程所监控。
图5 后端服务器没有被监听的回显示例 - 如果是HTTP健康检查,请您在后端服务器上执行以下命令查看回显中返回的状态码。
curl 后端服务器的私有IP:健康检查端口/健康检查路径 -iv
HTTP健康检查是ELB向后端服务器发起GET请求,当获取到以下所列的响应状态码,认为服务器是正常状态。
对于TCP的监听器,HTTP健康检查正常返回状态码是200。
对于ELB,HTTP健康检查正常返回状态码是200、202或者401。
图6 后端服务器异常的回显示例图7 后端服务器正常的回显示例 - 如果HTTP健康检查异常,除了检查健康检查路径外,建议您将配置的HTTP健康检查修改为TCP健康检查。操作如下:
在监听器界面,修改目标监听器,在配置参数里选择已有TCP健康检查的后端服务器组,或者选择新创建TCP健康检查的后端服务器组。配置完成之后,几十秒后去查看健康检查状态是否恢复正常。
检查服务器路由
请检查是否手动修改了后端服务器内部的路由,查看主网卡(比如eth0)上是否配置默认路由,默认路由是否修改。如果默认路由更改,可能导致健康检查报文无法到达后端服务器。
ip route
或
route -n
正常的回显如图8所示(如果回显中没有图中第一条路由信息,或者路由指向的IP的不是后端服务器所在VPC子网的网关,请您修改成默认路由)。
