我在使用 Application Load Balancer(ALB)时收到 HTTP 503(服务不可用)错误。如何解决此错误?
简短描述
要确定 Application Load Balancer 是否正在生成 503 错误,请执行以下操作之一:
- 访问您的 CloudWatch 指标并找到一个标有 HTTPCode_ELB_503_Count 的指标。
- 运行这个 CURL 命令。如果响应包含“503 服务暂时不可用”,则错误来自 Application Load Balancer。
请务必将 MY_URL 替换为用于访问 Application Load Balancer 的 URL:
$ curl -IkL MY_URL
解决方法
验证目标组是否已注册目标
使用 EC2 控制台进行验证
- 访问 Amazon EC2 控制台。
- 在导航窗格中,选择 Load Balancing(负载均衡)下的 Target Groups(目标组)。
- 选择目标组的名称以打开其详细信息页面。
- 选择 Targets(目标)选项卡。
- 检查是否列出了目标。如果它们被列出,则它们已注册。
使用 AWS CLI 进行验证
注意:如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本。
要使用 AWS CLI 验证目标,请使用 describe-target-health 命令。
注册目标
如果您没有看到任何已注册的目标,请通过控制台或 AWS CLI 注册它们。
验证目标组是否与 Auto Scaling 组相关联(如果您正在使用 Auto Scaling)
如果目标组属于 Auto Scaling 组,请确认两者正确关联。如果不是,请附加组。
使用 EC2 控制台进行验证:
- 打开 Amazon EC2 控制台。
- 在导航窗格的 Auto Scaling 下,选择 Auto Scaling Groups(Auto Scaling 组)。
- 选择要验证的 Auto Scaling 组。
- 在 Load balancing(负载均衡)下,确认 Application Load Balancer 的目标组与 Auto Scaling 组相关联。
使用 AWS CLI 进行验证
运行 describe-auto-scaling 命令。请务必将 MY-ASG 替换为您的 Auto Scaling 组的名称。将 AWS-REGION 替换为您特定的 AWS 区域。
$ aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name MY-ASG --region AWS-REGION
在命令输出中,确认目标组列在 TargetGroupARNs 下。
附加目标组
如果目标组未附加到 Auto Scaling 组,请通过控制台或 CLI 关联这些组。
检查目标运行状况
确认目标已注册后,请确认它们处于正常运行状态。有关更多信息,请参阅
如何排查和修复失败的 Application Load Balancer 运行状况检查?
相关信息
DeregisterTargets
AttachLoadBalancerTargetGroups