部署AWS ECS Web应用后无法通过浏览器访问的问题求助
ECS Web应用无法访问排查方案
1. 验证容器端口映射
- 检查任务定义的
portMappings配置:确认容器暴露的8080端口已正确映射到服务端口(EC2类型需映射主机端口,Fargate类型直接关联容器端口与目标组端口)。 - 若使用EC2启动类型,登录ECS实例执行
docker ps,查看PORTS列是否显示类似0.0.0.0:xxxx->8080/tcp的映射,确认端口绑定正常。
2. 排查负载均衡配置
- 检查目标组健康检查:确认健康检查端口设为8080,路径匹配应用的健康端点(如
/),若健康检查失败,负载均衡会剔除任务,导致无法访问。 - 验证监听器规则:确认负载均衡监听器将外部端口(如80/443)转发到目标组的8080端口,协议(HTTP/HTTPS)与应用一致。
- 查看目标组注册状态:确认3个任务均已注册且状态为
健康,Fargate任务需确保部署在负载均衡关联的可用子网内。
3. 确认应用自身可用性
- 在ECS实例内部(EC2类型)执行
curl localhost:xxxx(xxxx为映射后的主机端口),或curl <容器IP>:8080,测试应用是否正常响应。若本地无响应,说明容器内应用未正常启动。 - 查看容器日志:通过ECS控制台或
docker logs <容器ID>检查启动日志,排查应用报错(依赖缺失、配置错误等)。
4. 网络安全细节核查
- 检查网络ACL:默认VPC网络ACL允许全量流量,但如果有修改,需确认放行8080端口及负载均衡监听端口的出入流量。
- Fargate任务公网IP配置:若通过任务公网IP访问,需在任务定义中开启
AssignPublicIp为ENABLED,否则任务仅拥有内网IP,无法直接公网访问。 - 确认路由表:默认路由表需指向IGW,确保任务/实例的出站流量正常(镜像拉取正常不代表应用启动所需的外部依赖访问正常)。
5. DNS解析验证
- 执行
nslookup <负载均衡DNS>,确认能解析到正确IP,排除DNS解析故障。
内容的提问来源于stack exchange,提问作者Felix M.
相关产品推荐
相关产品推荐

