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

AWS Elastic Beanstalk ALB 504网关超时问题求助

排查与解决思路

针对你的Elastic Beanstalk Docker环境部署Directus后出现的ALB健康检查超时、域名访问504问题,按以下步骤逐一排查:

  • 验证目标组健康检查配置

    1. 确认目标组健康检查协议为HTTP,端口设置为8055,路径严格匹配/server/ping(注意大小写)。
    2. 调整健康检查超时与间隔:若Directus启动较慢,将超时时间从默认5秒调至10秒,间隔设为20秒,给应用足够响应窗口。
  • 排查网络连通性

    1. 在EC2实例上执行sudo tcpdump -i any port 8055,触发健康检查后观察是否有ALB来源的流量到达。若无流量,检查:
      • EC2安全组入站规则:确认已允许ALB所属安全组的8055端口HTTP流量,安全组ID需准确无误。
      • VPC网络访问控制列表(NACL):需同时允许入站8055端口流量和出站临时端口(1024-65535)的响应流量。
    2. 测试VPC内网访问:用同VPC内的资源访问EC2实例内网IP:8055/server/ping,若失败则问题出在实例本身或内网路由。
  • 确认Directus监听配置

    1. 检查Directus启动参数,确保监听地址为0.0.0.0而非127.0.0.1。仅监听回环地址会导致ALB通过内网IP无法访问应用(公网能访问是因为你用了实例公网IP,本地请求走回环)。
    2. 在EC2本地执行curl http://localhost:8055/server/ping,确认能返回pong,排除应用自身端点故障。
  • 防止Elastic Beanstalk覆盖配置

    1. 登录EB控制台,进入环境「配置」>「负载均衡」,确认默认进程的端口为8055、健康检查路径为/server/ping。EB会自动同步配置,若手动修改目标组后EB控制台配置不一致,会被覆盖。
    2. 创建.ebextensions/loadbalancer.config文件固化配置,避免被EB自动重置:
      option_settings:
        aws:elasticbeanstalk:environment:process:default:
          Port: '8055'
          HealthCheckPath: '/server/ping'
      
  • 分析ALB访问日志
    开启ALB访问日志并存储到S3,查看日志中健康检查请求的详细状态,判断是ALB未收到请求、转发失败还是目标无响应,精准定位问题环节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:11:04