我正在尝试使用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加载时看到“重定向过多”错误页面。
我真的很感激如何解决此问题的任何指示。
谢谢。
答案 0 :(得分:0)
您需要修改您的应用程序,使其根路径位于url之前,nginx不会更改代理内容。