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

重启AWS EC2实例后Nginx运行正常但React应用无法访问

排查EC2重启后Nginx运行但网站无法访问的问题

1. 确认EC2公网IP是否变更

AWS EC2默认用动态公网IP,停止再启动实例后公网IP会自动更换:

  • 登录AWS控制台进入EC2实例详情页,复制当前的公网IPv4地址重新尝试访问。
  • 要是需要固定IP,给实例分配**弹性公网IP(EIP)**并关联,避免重启后IP变动。

2. 检查Nginx实际运行状态与端口监听

虽然service nginx status显示已启动,但可能存在进程异常或端口未监听的情况:

  • 执行ps aux | grep nginx,确认Nginx主进程和worker进程都在运行。
  • 执行netstat -tulpn | grep nginx(或ss -tulpn | grep nginx),查看Nginx是否在监听80/443端口(取决于你的配置)。如果没有监听,说明Nginx配置有误或启动失败。

3. 验证Nginx配置文件正确性

重启实例后Nginx可能加载错误配置,导致无法正常服务:

  • 执行nginx -t检查配置文件语法,有错误会提示具体文件和行号。
  • 确认Nginx配置中root指向的静态文件目录(比如Vite构建后的dist目录)存在,且文件权限正确。示例配置检查:
    server {
        listen 80;
        server_name _; # 匹配任意域名或IP
        root /path/to/your/react/app/dist;
        index index.html;
    
        location / {
            try_files $uri $uri/ /index.html; # 适配React路由
        }
    }
    
  • 配置修改后执行service nginx reload或systemctl reload nginx重新加载配置。

4. 检查安全组与网络ACL规则

重启实例后安全组可能未正确关联或规则被修改:

  • 确认EC2实例关联的安全组已开放入站端口80(HTTP)(用HTTPS则开放443),源地址设为0.0.0.0/0或你需要的访问范围。
  • 检查VPC的网络ACL,确保入站规则允许80/443端口流量,出站规则允许必要的响应流量。

5. 查看Nginx日志定位问题

日志能直接反映Nginx运行错误:

  • 查看访问日志:tail -f /var/log/nginx/access.log,确认是否有请求记录。
  • 查看错误日志:tail -f /var/log/nginx/error.log,文件权限不足、配置错误或端口占用等问题都会在这里有详细提示。

6. 设置Nginx开机自启

避免下次重启后Nginx无法自动启动:

  • 执行systemctl enable nginx(适用于systemd系统),配置Nginx开机自动启动。
  • 若用service命令,可通过chkconfig nginx on设置开机自启(取决于系统版本)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:22:21