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

AWS ElasticBeanstalk环境下Nginx无法路由流量到Node.js服务器问题咨询

问题原因

  • 你自定义的Nginx配置没有匹配到请求,Nginx优先命中了平台自带的默认server块,所以返回了AWS默认的Nginx欢迎页,核心遗漏点如下:
    1. 配置未设置default_server标记和通用匹配的server_name,多个监听80端口的server块同时存在时,默认配置的优先级更高
    2. 如果你没有删除平台自带的/etc/nginx/conf.d/default.conf默认配置文件,该文件的规则会先匹配到访问请求
    3. 如果你是直接写的完整nginx.conf,文件存放路径不符合ElasticBeanstalk的规范,会导致配置没有实际被加载,运行的依然是默认配置
    4. 缺少必要的代理请求头配置,即使请求转发到Node服务也可能出现请求信息获取异常的问题

修复方案

方案一:保留完整自定义nginx.conf的修改方式

  1. 给你的server块添加默认服务标记和泛域名匹配:
events {}
http {
  server { # simple reverse-proxy
    listen       80 default_server;
    server_name  _;
    # pass requests for dynamic content
    location / {
      proxy_pass      http://localhost:5000;
      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;
    }
  }
}
  1. 确认该配置文件存放在你项目根目录的.platform/nginx/nginx.conf路径下,部署时ElasticBeanstalk会自动用该文件替换系统默认的全局Nginx配置

方案二:轻量扩展配置(更推荐)

不需要修改全局Nginx配置,只需要添加反向代理规则覆盖默认location即可,在项目根目录创建.platform/nginx/conf.d/proxy.conf文件,写入以下内容:

location / {
  proxy_pass http://localhost:5000;
  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配置加载,直接覆盖默认的根路径路由规则,无需处理默认配置冲突。

验证方式

部署完成后可登录到ElasticBeanstalk关联的EC2实例,执行nginx -T命令查看所有已加载的Nginx配置,确认自定义配置是否正常生效,是否存在优先级更高的80端口监听规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:54:03