重复位置“/”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 的后端?