重复位置“/”Nginx错误后端和前端

Posted

技术标签:

【中文标题】重复位置“/”Nginx错误后端和前端【英文标题】:Duplicate Location "/" Nginx Error Backend And Frontend 【发布时间】:2021-02-03 21:31:11 【问题描述】:

我在 5000 端口上运行 Express 服务器,在 8080 上运行 React 应用程序。

我的想法是仅根据位置 (uri) 引导流量,但我在将部分插入 AWS Beanstalk ngnix 配置时遇到了重复的位置“/”错误:

location / 
  root                /var/app/current/build/;
  try_files           $uri /index.html;
  proxy_http_version  1.1;
  proxy_pass          http://127.0.0.1:8080/;
  proxy_set_header    Host $host;
  proxy_set_header    X-Real-IP $remote_addr;
  proxy_set_header    Connection $connection_upgrade;
  proxy_set_header    Upgrade $http_upgrade;
  proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;


location /socket-io 
  proxy_pass                http://127.0.0.1:5000/;
  proxy_set_header          Host $host;
  proxy_set_header          X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header          X-nginx-Proxy true;
  proxy_set_header          X-Real-IP $remote_addr;
  proxy_ssl_session_reuse   off;
  proxy_cache_bypass        $http_upgrade;

这包含在标准的 ngnix.conf 中,大致如下:https://gist.github.com/alextanhongpin/00da7f551969f052e57f3c4dcd9ac4b0

【问题讨论】:

【参考方案1】:

这是 this answer 和 this other one 的某种组合,因为 AWS 文档不断变化。

在 EC2 上,文件 /etc/nginx/conf.d/elasticbeanstalk/00_application.conf 是似乎附加在主 nginx.conf 文件中的文件,带有 /etc/nginx/nginx.conf 行。

但是

latest documentation 表示在你的工作目录中有.platform/nginx/conf.d/your_custom.conf 是真正的 nginx 扩展文件。

我不得不在 EC2 上手动更改 00_application.conf 以消除重复错误,即使使用自定义配置文件重新部署,该文件似乎仍保持默认状态,并且该文件恰好有一个 location /

所以我现在建议使用 container_command 方法或手动更改它。

【讨论】:

我会进一步推荐阅读对 Amazon Linux 2 (AL2) 的更改,这是一个新设置:aws.amazon.com/blogs/compute/… 你也可以删除.platform/hooks/predeploy脚本中的00_application.conf,我的只是有一个默认的位置块。 基于 AL2 的文档,我们应该能够覆盖整个 conf,但它说要包含 conf.d 文件。所以像现在返回 301 for http on / now 之类的东西不起作用?这是设计使然,我们必须使用脚本删除冲突文件吗? 我还没有尝试过 AL2 提到的 完整 替换 (.platform/nginx/nginx.conf)。我目前正在使用location.conf 设置/ 和另一条路径。如果您在没有脚本的情况下获得完整的配置替换,请告诉我们,我想我最初试图这样做,但由于某种原因它没有工作。 我刚刚替换了整个配置,还发现我需要重建 EC2 环境。似乎当您尝试不同的事情,移动文件时,其中一些配置文件会粘住并用于在您不打算使用它们时配置代理。

以上是关于重复位置“/”Nginx错误后端和前端的主要内容,如果未能解决你的问题,请参考以下文章

当流体页面导致后端和前端出现错误时,如何重新访问 TYPO3 的后端?

Nginx 部署 Angular 前端未连接到 DRF 后端

前端lvs访问多台nginx代理服务时出现404错误的处理

分离 graphql/relay 后端和前端

web后端和前端是怎么连接的

在 Rails 中分离后端和前端服务器