You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS ALB返回502 Bad Gateway故障排查求助

排查ALB到ECS Fargate的502 Bad Gateway问题

根据你的描述,直接访问ALB DNS也返回502,说明问题核心在ALB与ECS Fargate服务的连通性或配置匹配上,以下是按优先级排序的排查步骤:

1. 检查目标组健康状态与注册情况

  • 登录AWS控制台,进入EC2 -> 目标组,查看对应目标组的目标状态:
    • 如果目标显示「未注册」:确认ECS服务的负载均衡配置是否正确关联了该目标组,任务定义的网络模式是否为awsvpc(Fargate强制要求),且ECS服务的子网与目标组的VPC一致。
    • 如果目标显示「不健康」:检查健康检查配置是否匹配你的Java应用:
      • 健康检查路径是否为应用的存活端点(比如Spring Boot的/actuator/health),确保该端点返回200-399状态码。
      • 健康检查的协议、端口是否与容器暴露的端口一致(你这里是HTTP:80)。
      • 调整健康检查的超时、间隔时间,避免因应用启动慢导致的误判。

2. 验证ECS任务的运行状态与日志

  • 进入ECS控制台,查看对应任务的状态:如果任务是「运行中」但健康检查失败,查看容器日志(CloudWatch Logs):
    • 确认Java应用是否成功启动,日志中是否有端口绑定成功的信息(比如Tomcat started on port(s): 80 (http))。
    • 检查是否有数据库连接失败、环境变量配置错误等导致应用无法正常提供服务的报错。
  • 确认任务定义的端口映射:容器端口设置为80,主机端口留空(Fargate无需主机端口),协议为TCP。

3. 排查网络连通性问题

  • 私网子网路由表:ECS部署在私网子网,需确保子网的路由表包含0.0.0.0/0指向NAT网关的路由(私网子网的任务无法通过公网IP直接访问公网,必须依赖NAT网关拉取镜像、访问外部服务)。如果缺少这条路由,任务可能因无法初始化导致服务不可用。
  • 网络ACL配置:VPC的网络ACL是子网级防火墙,需确认:
    • 入站规则允许ALB所在公网子网的IP段访问ECS私网子网的80端口(TCP)。
    • 出站规则允许ECS私网子网的流量返回ALB的IP段。
  • 连通性测试:在同一VPC的公网子网启动一台EC2实例,使用telnet <ECS任务私网IP> 80或curl <ECS任务私网IP>测试是否能访问应用。如果不通,进一步排查安全组(虽然你说允许所有流量,但需确认安全组的入站规则是否允许来自ALB安全组的80端口流量)。

4. 核对ALB配置细节

  • 确认ALB的监听器规则:HTTPS:443监听器的默认动作是否转发到正确的目标组,没有错误的路径匹配规则导致流量无法到达ECS。
  • 检查ALB的安全组:入站规则允许公网的443端口流量,出站规则允许访问ECS私网子网的80端口流量。

先解决ALB到ECS的基础访问问题,再逐步验证API Gateway到ALB的链路。

内容的提问来源于stack exchange,提问作者Tushar Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 10:15:21