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

在AWS ECS部署含Nginx与Drupal的任务定义时遇503错误求助

ECS awsvpc模式下Nginx与Drupal容器通信503错误排查建议

1. 先验证Nginx到Drupal的端口连通性

虽然awsvpc模式下容器共享网络命名空间,但实际连通性可能因进程问题失效:

  • 进入Nginx容器,执行 nc -zv localhost 9000 或 telnet localhost 9000,若返回连接拒绝,说明Drupal的9000端口未正常监听
  • 进入Drupal容器,执行 ss -tulpn | grep 9000(无ss工具可安装iproute2包),确认是否有PHP-FPM进程绑定9000端口

2. 检查任务定义的容器端口配置

确保Drupal容器的9000端口已正确暴露:

  • 查看任务定义中Drupal容器的exposedPorts配置,是否包含9000(无需映射到主机,只需容器内部开放端口)
  • 若使用portMappings,确认无端口冲突,awsvpc模式下只需容器自身开放端口即可

3. 确认代码目录的共享一致性

Nginx需要访问Drupal的PHP代码文件,否则fastcgi请求会失败:

  • 核对Nginx配置中的root /app/src/web,确认Drupal容器的代码是否挂载到了相同路径
  • 查看任务定义的卷配置,两个容器是否挂载了同一个EFS卷或绑定挂载,且路径完全匹配(比如都挂载/app/src)

4. 排查ALB目标组的健康状态

503错误可能来自ALB无法连接Nginx,而非容器间通信问题:

  • 确认目标组协议为HTTP,端口设置为8080
  • 检查健康检查路径是否有效(比如设置为/或/index.php),确保Nginx能返回200状态码
  • 查看目标组中的ECS任务实例状态,若显示不健康,ALB会直接返回503

5. 查看容器日志定位具体错误

  • 查看Nginx错误日志(通常路径为/var/log/nginx/error.log),里面会记录fastcgi连接失败的细节(如连接拒绝、文件不存在等)
  • 查看Drupal容器的日志,确认PHP-FPM服务是否正常启动,有没有启动报错

6. 尝试替换localhost为127.0.0.1

部分场景下localhost解析可能存在异常,修改Nginx配置:

fastcgi_pass 127.0.0.1:9000;

重新部署任务后测试连通性


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:27:17