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

如何让AWS EC2上运行在3001端口的REACT应用通过HTTP 80端口访问

配置教程

方案1:Nginx反向代理(生产环境优先选择)

这个方案稳定性、性能最优,后续也方便扩展HTTPS、静态资源缓存等能力,操作步骤如下:

  • 安装Nginx
sudo apt update && sudo apt install nginx -y
  • 新建React应用的Nginx配置文件
sudo nano /etc/nginx/sites-available/react-app

将以下配置粘贴到文件中,把your_ec2_public_ip替换为你的EC2实例公网IP或者绑定的域名:

server {
    listen 80;
    server_name your_ec2_public_ip;

    location / {
        proxy_pass http://localhost:3001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  • 激活配置文件并删除默认Nginx站点(避免80端口冲突)
sudo ln -s /etc/nginx/sites-available/react-app /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
  • 测试配置是否合法,合法后重载Nginx生效
sudo nginx -t
# 提示test is successful后执行重载
sudo systemctl reload nginx
  • 若系统开启了ufw防火墙,放行Nginx HTTP流量
sudo ufw allow 'Nginx HTTP'

方案2:iptables端口转发(临时测试使用)

不需要安装额外服务,适合临时调试场景,重启后规则会失效(如需持久化可安装iptables-persistent):

  • 执行端口转发规则,将80端口的TCP流量转发到本地3001端口
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3001
  • 如需持久化规则,执行以下操作:
sudo apt install iptables-persistent -y
sudo netfilter-persistent save

方案3:直接修改应用监听端口(不推荐生产使用)

1024以下端口需要root权限才能绑定,直接用root运行Node服务存在安全风险,仅适合快速验证:

  • 修改项目package.json中的启动脚本,在启动命令前加PORT=80,示例:
"start": "PORT=80 react-scripts start"
  • 用sudo权限启动应用
sudo npm start

验证配置

确保你的React应用正在3001端口正常运行,直接在浏览器输入EC2实例的公网IP,无需加端口号即可访问应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:06:00