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

部署在AWS EC2的NGINX无法路由流量到AWS外部服务器如何排查

问题排查步骤
  • 第一步:验证基础网络连通性

    直接登录AWS EC2实例,执行以下命令测试到本地测试服务器的端口连通性:
    telnet XXX.XX.XXX.XXX 3000
    # 或者用curl验证服务响应
    curl -v http://XXX.XX.XXX.XXX:3000
    
    如果该步骤直接超时,说明问题出在网络层,和NGINX配置无关。
  • 第二步:检查AWS侧出站规则

    • 安全组规则:你仅配置了入站端口放行,需确认安全组出站规则是否允许TCP 3000端口到0.0.0.0/0的访问,默认安全组出站是全放通,若你有自定义修改需补充对应规则。
    • VPC NACL规则:确认默认VPC的网络访问控制列表没有限制出站TCP 3000端口,也没有拦截入站的临时响应端口(1024-65535)。
    • 若使用Lightsail实例,需单独检查Lightsail控制台的实例防火墙出站规则,确认3000端口已放行。
  • 第三步:检查本地服务商侧入站限制

    这是最高概率的问题点:
    • 本地测试服务器的操作系统防火墙、本地服务商的机房防火墙/WAF/安全组,大概率配置了来源IP白名单,仅允许原本地服务商的NGINX IP访问3000端口,未将AWS EC2的公网IP加入白名单,直接拦截了AWS侧的请求。
    • 确认本地Node服务本身没有做访问IP限制,仅允许本地IP段访问3000端口。
  • 第四步:排查NGINX配置问题

    你当前的proxy_pass配置写法不规范,多余的引号和break指令可能引发异常,建议修改为标准写法:
    server {
        server_name test.mydomain.app www.test.mydomain.app;
        location / {
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $http_host;
            proxy_pass http://XXX.XX.XXX.XXX:3000;
        }
    }
    
    修改后执行nginx -t验证配置有效性,再执行nginx -s reload重载配置,同时查看NGINX错误日志定位具体报错:
    tail -f /var/log/nginx/error.log
    
  • 第五步:排查AWS额外安全限制

    确认你的AWS账号没有配置WAF、Shield等安全策略拦截出站到非80/443端口的流量,公网子网绑定的互联网网关规则正常,没有路由异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:57:04