如何强制重写或重定向 nginx 反向代理位置

问题描述 投票:0回答:1

我正在尝试使用 Nginx 在我的主网站的子目录上反向代理 node.js 应用程序,该子目录也被反向代理。

/ 反向代理按预期工作但是第二个位置不加载任何资产...

我正在使用以下配置:

    location / {

    proxy_pass http://192.168.1.104:3000/;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;                       
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
    }

    location /new/ {

    proxy_pass http://192.168.1.65:3000/;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;                       
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  

    }

这与我访问 ./new url 时一样有效,我可以看到 node.js 应用程序的默认页面,但没有加载图像、css 或 js 资产。

当我检查浏览器控制台时,我可以看到加载错误,表明浏览器正在尝试从 / 位置加载资产...

此外,在 ./new 加载的页面上显示的链接也指向 / 位置,因此它们也不起作用...

我一直在努力解决这个问题,并且看到

nginx.conf
文件中的重写或返回命令可用于重定向浏览器,但这些似乎都无法解决我的问题......或者我可能误解了如何使用它们,因为我在尝试从 ./new URL 加载时看到“太多重定向”错误页面...

我该如何解决这个问题?

nginx reverse-proxy nginx-reverse-proxy
1个回答
0
投票

您需要修改您的应用程序以将其根路径添加到 url,nginx 不会更改代理内容。

© www.soinside.com 2019 - 2024. All rights reserved.