为什么通过负载均衡无法访问后端业务?
问题描述
当出现以下问题时,可以参考本章节排查解决。
- 可以直接访问后端业务,但是无法通过负载均衡访问后端业务。
- 通过私网IP可以访问负载均衡,但是公网IP无法访问负载均衡。
- 后端服务器健康检查异常。
背景介绍
客户端通过负载均衡访问服务器示意图如图1。
- 公网客户端的流量经过EIP传送到负载均衡器;私网客户端的流量直接通过私网IP传送到负载均衡器。
- 负载均衡器根据监听器配置的前端协议/端口,将流量转发给匹配到的监听器。
- 监听器首先判断后端服务器的健康检查是否正常,只有健康检查为正常时,才会转发流量给后端服务器。
- 监听器会根据后端服务器的权重和分配策略,转发流量给相应的后端服务器。
通常情况下,客户端通过负载均衡器无法访问后端服务器可能原因包括安全控制(如黄色矩形框)和健康检查配置问题(如绿色矩形框)。
建议您按照从后端到前端的顺序进行排查,从而帮助您快速找到问题的原因。
排查思路
- 步骤一:排查是否可直接访问后端服务器:使用客户端直接访问后端服务器,确认后端服务器配置和业务配置无问题。
- 步骤二:排查是否开启健康检查:通过“监听器 > 后端服务器组”查看是否开启了健康检查选项。
- 步骤三:排查健康检查是否正常:通过“监听器 > 后端服务器组”查看服务器的健康检查结果是否为正常。健康检查异常的情况下,负载均衡不会向这台服务器转发流量。
- 步骤四:排查后端服务器配置是否正确:通过“监听器 > 后端服务器组”查看后端服务器的权重和业务端口是否配置正确。
- 步骤五:检查访问控制配置是否正确:通过“监听器 > 基本信息”查看是否开启了访问控制,以及访问控制是否限制了客户端的访问。
步骤一:排查是否可直接访问后端服务器
可以通过客户端直接访问后端服务器的IP地址来快速定界是ELB配置问题,还是后端服务器本身业务配置问题。使用客户端直接访问后端服务器时,请注意放通客户端到后端服务器之间的网络ACL。
- 公网客户端:使用公网客户端访问后端服务器时,您需要为后端服务器暂时绑定EIP。待验证完成后,再释放此EIP。
- 私网客户端:无需绑定EIP。如果是跨VPC的客户端访问,请注意配置VPC对等连接。
执行完成后,如果仍无法访问,请执行步骤二:排查是否开启健康检查。
步骤二:排查是否开启健康检查
当客户端直接访问后端服务器业务正常时,请检查负载均衡器是否开启了健康检查。当服务器开启了健康检查,而健康检查失败时,负载均衡器不会向此后端服务器转发流量。
- 登录管理控制台。
- 在管理控制台左上角单击图标,选择区域和项目。
- 单击页面左上角的,选择“网络 > 弹性负载均衡”。
- 在“负载均衡器”界面,单击需要查看的负载均衡名称。
- 在“监听器”页签下,查看是否已开启健康检查。
- 已经开启健康检查:请执行步骤三:排查健康检查是否正常。
- 未开启健康检查:
- 共享型负载均衡:请检查后端服务器的安全组和网络ACL规则已经放通100.125.0.0/16网段。
- 独享型负载均衡:请检查后端服务器的安全组已经放通ELB后端子网所在的VPC网段。
此网段是ELB访问后端服务器使用的地址,不会存在安全风险。放通网段后,如果仍无法访问,请执行步骤四:排查后端服务器配置是否正确。
- 共享型实例四层监听器开启“获取客户端IP”功能后,后端服务器安全组规则和网络ACL规则均无需放通100.125.0.0/16网段及客户端IP地址。
- 独享型负载均衡四层监听器未开启“跨VPC后端”功能时,后端服务器安全组规则和网络ACL规则均无需放通ELB后端子网所在的VPC网段。
步骤三:排查健康检查是否正常
当服务器开启了健康检查,而健康检查失败时,负载均衡器不会向此后端服务器转发流量。
- 存在异常的后端服务器:请参考健康检查异常如何排查进行排查。
- 无异常的后端服务器:请执行步骤四:排查后端服务器配置是否正确。
执行完成后,如果仍无法访问,请执行步骤四:排查后端服务器配置是否正确。
步骤四:排查后端服务器配置是否正确
- 在“后端服务器组 > 后端服务器”页面查看已添加的后端服务器的参数,重点观察以下参数:
- 权重:权重如果设置为0,则不会向这个服务器转发流量
- 业务端口:需要与实际的业务端口相同。
- 在“监听器”页面,单击待查看的四层(TCP/UDP)监听器,查看是否打开了“获取客户端IP”选项。
执行完成后,如果仍无法访问,请执行步骤五:检查访问控制配置是否正确。
提交工单
如果上述方法均不能解决您的疑问,请提交工单寻求更多帮助。