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

使用Terraform部署AWS应用后出现502 Bad Gateway错误排查求助

排查AWS ALB 502 Bad Gateway错误的实操方案

先查ALB目标组的健康状态

  • 进入AWS控制台的EC2 -> 目标组,先查看实例的健康状态:
    • 如果实例标红不健康,直接聚焦到实例或健康检查配置问题
    • 核对健康检查路径:前端目标组要配置/(对应前端根路径),后端需使用能返回200状态码的接口(比如/api/health),避免配置不存在的路径
    • 确认健康检查的端口、协议和EC2上应用的监听端口一致(比如前端用80,后端用3000)
    • 查看AWS给出的健康检查失败原因,比如连接超时、404,这是最直接的排查线索

验证EC2上的应用能否正常运行

  • 直接通过EC2的公网IP访问应用:
    • 访问http://<EC2公网IP>:<前端端口>,确认前端页面能正常加载
    • 测试后端接口http://<EC2公网IP>:<后端端口>/api/xxx,确认接口有正常返回
  • 登录EC2实例,执行docker ps查看容器是否在运行:
    • 若容器未启动,查看容器日志docker logs <容器ID/名称>,排查启动报错(比如依赖缺失、端口被占用)
    • 检查User Data脚本的执行日志cat /var/log/cloud-init-output.log,确认Docker安装、Git克隆、容器启动的每一步都执行成功(比如Git克隆是否有权限、镜像是否拉取完成)

核对安全组和网络配置

  • ALB安全组:必须放开80/443端口的公网入站规则,同时允许出站到EC2的应用端口(比如80、3000)
  • EC2安全组:不能只放行公网IP,必须允许ALB所在安全组访问应用端口;还要放开到RDS数据库端口(比如3306、5432)的出站规则,以及互联网出站规则(用于拉取Docker镜像、克隆Git代码)
  • VPC路由表:确认EC2所在子网有到互联网的路由(若需公网访问),ALB所在子网为挂载了Internet Gateway的公网子网,RDS与EC2所在子网可连通(同VPC或配置了VPC Peering)

检查RDS的连接是否正常

  • 登录EC2实例,用数据库客户端测试连接:MySQL执行mysql -h <RDS端点> -u <用户名> -p,PostgreSQL执行psql -h <RDS端点> -U <用户名> -d <数据库名>
  • 核对后端应用的数据库配置:确认User Data中注入的RDS端点、用户名、密码、数据库名称均正确
  • RDS安全组:必须允许EC2所在安全组访问数据库端口

确认ALB的路由规则配置正确

  • 查看ALB的监听器规则:
    • /路径是否转发到前端目标组
    • /api/*是否转发到后端目标组,且路径匹配规则为前缀匹配(不要选精确匹配)
    • 监听器的协议(HTTP/HTTPS)与目标组的协议需一致(比如ALB用HTTP,目标组也需配置HTTP)

其他排查点

  • 检查Docker端口映射:确认容器端口已正确映射到主机端口(比如前端容器80端口映射到主机80端口)
  • 确认应用监听地址:容器内的应用需监听0.0.0.0,若仅监听localhost,ALB将无法访问
  • 开启ALB访问日志:在ALB配置中开启访问日志并存储到S3,下载日志后查看具体请求的返回码、目标实例及错误细节

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 00:15:58