AWS ALB DNS无法访问:ECS健康检查正常但curl无返回
排查ECS+ALB健康检查正常但curl无响应的问题
核心排查步骤
核对请求路径与健康检查配置
确认curl使用的路径和ALB健康检查的路径完全一致,比如健康检查配置的是/health,就直接执行:curl http://<DNS_ALB>/health同时检查Django的
ALLOWED_HOSTS设置,测试阶段可临时设为*,避免因主机头不匹配返回400错误。建议加-v参数查看详细响应:curl -v http://<DNS_ALB>/<healthcheck endpoint>验证ECS任务端口映射与目标组配置
检查ECS任务定义:容器端口8000是否正确映射,若用动态端口,目标组需配置为转发到容器端口8000(ECS会自动注册主机端口),而非固定主机端口。查看应用日志定位请求状态
到CloudWatch Logs中查看Django应用的日志,确认是否收到ALB转发的curl请求:- 若无请求记录:说明ALB流量未到达容器,检查目标组注册状态、VPC路由表
- 有请求但返回错误:根据日志提示排查(如路由不存在、权限限制等)
检查ALB监听规则
确认ALB的80端口监听规则是否正确关联到ECS任务的目标组,无其他规则(如路径匹配错误)拦截请求。VPC内直接测试容器可用性
在同VPC的EC2实例上,curl容器私有IP+8000端口+健康检查路径,确认应用本身能正常响应。若此步骤失败,问题出在容器内应用配置,与ALB无关。
内容的提问来源于stack exchange,提问作者NPatel
相关产品推荐
相关产品推荐

