Elastic Load Balancing
应用程序负载均衡器
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

对应用程序负载均衡器进行故障排除

以下信息可帮助您解决与 应用程序负载均衡器 相关的问题。

已注册目标未处于可用状态

如果目标进入 InService 状态所花费的时间超过预期,则该目标可能无法通过运行状况检查。您的目标未处于可用状态,除非通过一次运行状况检查。有关更多信息,请参阅 目标组的运行状况检查

验证您的实例是否通过运行状况检查,然后检查以下各项:

安全组不允许流量

与实例关联的安全组必须允许来自负载均衡器的使用运行状况检查端口和运行状况检查协议的流量。您可以向实例安全组添加一个规则以允许来自负载均衡器安全组的所有流量。负载均衡器的安全组也必须允许流入实例的流量。

网络访问控制列表 (ACL) 不允许流量

与实例的子网关联的网络 ACL 必须允许运行状况检查端口上的入站流量,以及临时端口 (1024-65535) 上的出站流量。与您负载均衡器节点的子网关联的网络 ACL 必须允许临时端口上的入站流量,以及运行状况检查端口和临时端口上的出站流量。

ping 路径不存在

创建运行状况检查的目标页并将其路径指定为 ping 路径。

连接超时

首先,验证您是否能使用目标的私有 IP 地址和运行状况检查协议直接从网络中连接到目标。如果您无法连接,请检查实例是否被过度使用,并将多个目标添加到目标组 (如果它太忙而无法响应)。如果您可以连接,则在运行状况检查超时期限之前,目标页可能不会响应。为运行状况检查选择更简单的目标页,或者调整运行状况检查设置。

目标未返回成功响应代码

默认情况下,成功代码为 200,但您可以选择在配置运行状况检查时指定其他成功代码。确认负载均衡器所需的成功代码,并且应用程序已配置为在成功时返回这些代码。

客户端无法连接到面向 Internet 的负载均衡器

如果负载均衡器未响应请求,请检查以下各项:

您的面向 Internet 的负载均衡器已连接到私有子网

确认您已为负载均衡器指定公有子网。公有子网有一个指向 Virtual Private Cloud (VPC) 的 Internet 网关的路由。

安全组或网络 ACL 不允许流量

负载均衡器的安全组和负载均衡器子网的任何网络 ACL 必须允许客户端侦听器端口上的入站流量和出站流量。

负载均衡器将请求发送到运行状况不佳的目标

如果您的负载均衡器至少有一个运行正常的已注册目标,则负载均衡器仅将请求路由到运行正常的已注册目标。如果只有运行状况不佳的已注册目标,则负载均衡器将请求路由到所有已注册目标。

负载均衡器生成 HTTP 错误

以下 HTTP 错误由负载均衡器生成。负载均衡器将 HTTP 代码发送到客户端,将请求保存到访问日志并增加 HTTPCode_ELB_4XX_CountHTTPCode_ELB_5XX_Count 指标。

HTTP 400:错误请求

可能的原因:

  • 客户端发送的请求格式错误,不符合 HTTP 规范。

  • 请求标头超出了每个请求行 16K、每单个标头 16K 或整个标头 64K 的限制。

HTTP 403:禁止访问

如果您配置了 AWS WAF Web 访问控制列表 (Web ACL) 以监控发往您的 应用程序负载均衡器 的请求,且它拦截了请求,就会出现此响应。

HTTP 460

在负载均衡器收到了来自客户端的请求,但客户端在空闲超时期限结束前就关闭了与负载均衡器的连接时,会出现此响应。

检查客户端超时期限是否超过负载均衡器的空闲超时期限。确保目标在客户端超时期限之前向客户端提供响应,或增加客户端超时期限以匹配负载均衡器空闲超时 (如果客户端支持这样做)。

HTTP 502:无效网关

可能的原因:

  • 负载均衡器在尝试建立连接时从目标收到了 TCP RST。

  • 当负载均衡器具有目标的未完成请求时,目标关闭了具有 TCP RST 或 TCP FIN 的连接。

  • 目标响应格式错误,或者包含无效的 HTTP 标头。

  • 使用了新目标组,但还没有任何目标通过初始运行状况检查。目标必须通过一次运行状况检查才能被视为正常运行。

HTTP 503:服务不可用

当负载均衡器的目标组没有已注册目标时,会出现此响应。

HTTP 504:网关超时

可能的原因:

  • 负载均衡器未能在连接超时到期 (10 秒) 之前建立与目标的连接。

  • 负载均衡器与目标建立了连接,但在空闲超时到期之前未响应。

  • 子网的网络 ACL 不允许临时端口 (1024-65535) 上从目标到负载均衡器节点的流量。

  • 目标返回的 content-length 标头大于整个正文。负载均衡器因等待缺少的字节而超时。

目标生成 HTTP 错误

负载均衡器将有效的 HTTP 响应从目标转发到客户端,包括 HTTP 错误。目标生成的 HTTP 错误记录在 HTTPCode_Target_4XX_CountHTTPCode_Target_5XX_Count 指标中。