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

AWS应用负载均衡(ALB)无法访问Docker容器问题求助

React应用通过ALB无法访问的原因及解决办法
  • ALB健康检查失败
    ALB基于HTTP协议做健康检查,若目标EC2的80端口返回非200状态码,ALB会判定实例不健康,拒绝转发流量。

    • 排查:查看ALB目标组的健康状态,确认是否显示“不健康”
    • 解决:
      1. 确保React应用根路径/能返回200状态码(比如用create-react-app构建后,需用Nginx或serve -s build正确托管静态文件,避免404)
      2. 调整健康检查路径到存在的资源,比如/favicon.ico,或在应用中添加专门的/health接口返回200
  • React路由配置与ALB转发不兼容
    若使用BrowserRouter,ALB转发的请求可能因Host头或路由路径问题,导致React无法正确解析路由,返回404。

    • 解决:
      1. 构建React应用时设置PUBLIC_URL环境变量,匹配ALB的域名,例如PUBLIC_URL=http://your-alb-domain
      2. 配置静态资源服务(如Nginx)添加try_files $uri $uri/ /index.html;规则,让所有路由请求回退到index.html
  • EC2安全组/网络ACL限制
    虽然NLB(TCP层)能通,但ALB的HTTP流量可能被EC2安全组或网络ACL拦截。需确保:

    • EC2安全组入站规则允许ALB所在VPC的CIDR段访问80端口
    • 网络ACL的入站/出站规则允许HTTP(80端口)流量在ALB与EC2之间通行
  • 容器内服务监听范围限制
    若React开发服务器(npm start)默认仅监听localhost,即使Docker映射了端口,EC2主机也无法正常转发请求到容器。

    • 解决:启动开发服务器时添加HOST=0.0.0.0环境变量,或使用生产构建后的静态服务(如serve -s build,默认监听0.0.0.0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:43:12