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

React应用部署到AWS ECS集群后无法加载问题求助

你使用的多阶段构建React应用镜像的Dockerfile内容如下:

# Multi-stage
# 1) Node image for building frontend assets
# 2) nginx stage to serve frontend assets

# Name the node stage "builder"
FROM node:10 AS builder
# Set working directory
WORKDIR /app
# Copy all files from current directory to working dir in image
COPY . .
# install node modules and build assets
RUN yarn install && yarn build

# nginx state for serving content
FROM nginx:alpine
# Set working directory to nginx asset directory
WORKDIR /usr/share/nginx/html
# Remove default nginx static assets
RUN rm -rf ./*
# Copy static assets from builder stage
COPY --from=builder /app/build .
# Containers run nginx with global directives and daemon off
ENTRYPOINT ["nginx", "-g", "daemon off;"]

镜像本地运行正常,部署到ECS集群后Task运行正常但访问EC2公网地址超时,可按以下方向排查问题:

  • EC2实例安全组配置错误:默认EC2安全组仅开放22端口的入站规则,需要确认安全组已允许0.0.0.0/0(或你本地的公网IP)访问80端口的入站流量,若你修改过nginx监听端口,需同步开放对应端口的入站规则。
  • ECS Task未配置端口映射:若使用bridge网络模式部署Task,需要在Task定义中明确将容器的80端口映射到EC2宿主机的80端口(或其他自定义端口,访问时需带上对应端口);若使用awsvpc网络模式,需要确认Task已分配公网IP,且对应安全组放通了80端口入站。
  • VPC网络配置异常:确认EC2实例所在的子网已绑定互联网网关,且子网路由表已配置指向互联网网关的公网路由,同时检查子网的网络ACL没有拦截80端口的入站/出站流量。
  • 容器内服务监听异常:可以进入运行中的Task容器执行curl localhost:80验证nginx服务是否正常响应,也可以在EC2实例本地执行curl localhost:80验证端口映射是否生效,排除React构建产物异常、nginx配置错误导致的服务不可用问题。
  • ECS服务关联了负载均衡:如果你的ECS服务绑定了ALB/NLB,且EC2安全组仅放通了来自负载均衡的流量,直接访问EC2公网IP会被安全组拦截,此时应访问负载均衡的公网地址验证服务可用性。
  • EC2本地防火墙拦截:确认EC2实例操作系统内置的iptables或firewalld规则没有拦截80端口的入站流量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:36:02