文档首页/ 弹性负载均衡 ELB/ 用户指南 (巴黎区域)/ 常见问题/ 为什么通过负载均衡无法访问后端业务?
更新时间:2024-04-08 GMT+08:00

为什么通过负载均衡无法访问后端业务?

问题描述

当出现以下问题时,可以参考本章节排查解决。

  • 可以直接访问后端业务,但是无法通过负载均衡访问后端业务。
  • 通过私网IP可以访问负载均衡,但是公网IP无法访问负载均衡。
  • 后端服务器健康检查异常。

背景介绍

客户端通过负载均衡访问服务器示意图如图1

  1. 公网客户端的流量经过EIP传送到负载均衡器;私网客户端的流量直接通过私网IP传送到负载均衡器。
  2. 负载均衡器根据监听器配置的前端协议/端口,将流量转发给匹配到的监听器。
  3. 监听器首先判断后端服务器的健康检查是否正常,只有健康检查为正常时,才会转发流量给后端服务器。
  4. 监听器会根据后端服务器的权重和分配策略,转发流量给相应的后端服务器。

通常情况下,客户端通过负载均衡器无法访问后端服务器可能原因包括安全控制(如黄色矩形框)和健康检查配置问题(如绿色矩形框)。

建议您按照从后端到前端的顺序进行排查,从而帮助您快速找到问题的原因。

图1 客户端通过负载均衡访问后端服务器示意图

排查思路

图2 排查思路
  1. 步骤一:排查是否可直接访问后端服务器:使用客户端直接访问后端服务器,确认后端服务器配置和业务配置无问题。
  2. 步骤二:排查是否开启健康检查:通过“监听器 > 后端服务器组”查看是否开启了健康检查选项。
  3. 步骤三:排查健康检查是否正常:通过“监听器 > 后端服务器组”查看服务器的健康检查结果是否为正常。健康检查异常的情况下,负载均衡不会向这台服务器转发流量。
  4. 步骤四:排查后端服务器配置是否正确:通过“监听器 > 后端服务器组”查看后端服务器的权重和业务端口是否配置正确。
  5. 步骤五:检查访问控制配置是否正确:通过“监听器 > 基本信息”查看是否开启了访问控制,以及访问控制是否限制了客户端的访问。

步骤一:排查是否可直接访问后端服务器

可以通过客户端直接访问后端服务器的IP地址来快速定界是ELB配置问题,还是后端服务器本身业务配置问题。使用客户端直接访问后端服务器时,请注意放通客户端到后端服务器之间的网络ACL。

  • 公网客户端:使用公网客户端访问后端服务器时,您需要为后端服务器暂时绑定EIP。待验证完成后,再释放此EIP。
  • 私网客户端:无需绑定EIP。如果是跨VPC的客户端访问,请注意配置VPC对等连接。

执行完成后,如果仍无法访问,请执行步骤二:排查是否开启健康检查

步骤二:排查是否开启健康检查

当客户端直接访问后端服务器业务正常时,请检查负载均衡器是否开启了健康检查。当服务器开启了健康检查,而健康检查失败时,负载均衡器不会向此后端服务器转发流量。

  1. 登录管理控制台。
  2. 在管理控制台左上角单击图标,选择区域和项目。
  3. 单击页面左上角的,选择“网络 > 弹性负载均衡”。
  4. 在“负载均衡器”界面,单击需要查看的负载均衡名称。
  5. 在“监听器”页签下,查看是否已开启健康检查。
    • 已经开启健康检查:请执行步骤三:排查健康检查是否正常
    • 未开启健康检查:
      • 共享型负载均衡:请检查后端服务器的安全组和网络ACL规则已经放通100.125.0.0/16和100.126.0.0/16网段。
      • 独享型负载均衡:请检查后端服务器的安全组已经放通ELB后端子网所在的VPC网段。

      此网段是ELB访问后端服务器使用的地址,不会存在安全风险。放通网段后,如果仍无法访问,请执行步骤四:排查后端服务器配置是否正确

    • 共享型实例四层监听器开启“获取客户端IP”功能后,后端服务器安全组规则和网络ACL规则均无需放通100.125.0.0/16和100.126.0.0/16网段及客户端IP地址。
    • 独享型负载均衡四层监听器未开启“跨VPC后端”功能时,后端服务器安全组规则和网络ACL规则均无需放通ELB后端子网所在的VPC网段。

步骤三:排查健康检查是否正常

当服务器开启了健康检查,而健康检查失败时,负载均衡器不会向此后端服务器转发流量。

执行完成后,如果仍无法访问,请执行步骤四:排查后端服务器配置是否正确

步骤四:排查后端服务器配置是否正确

  1. 在“后端服务器组 > 后端服务器”页面查看已添加的后端服务器的参数,重点观察以下参数:
    • 权重:权重如果设置为0,则不会向这个服务器转发流量
    • 业务端口:需要与实际的业务端口相同。
  2. 在“监听器”页面,单击待查看的四层(TCP/UDP)监听器,查看是否打开了“获取客户端IP”选项。
    • 如果打开了此选项,ELB会直接使用客户端的真实IP访问后端服务器。此时需要在安全组和网络ACL中设置放通客户端的真实IP地址。

      此外,如果开启了“获取客户端IP”,不支持后端服务器和客户端使用同一台服务器,原因是后端服务器会根据报文源IP为本地IP判定该报文为本机发出的报文,无法将应答报文返回给ELB,最终导致回程流量不通。

    • 如果未开启“获取客户端IP”,需检查后端服务器安全组是否放通相应网段。

执行完成后,如果仍无法访问,请执行步骤五:检查访问控制配置是否正确

步骤五:检查访问控制配置是否正确

在监听器的“基本信息”页签,查看访问控制配置是否正确,是否已经放通了客户端的IP地址。