如何对 nginx 反向代理位置执行重写或重定向
How to enforce a rewrite or redirect for an nginx reverse proxyed location
我正在尝试使用 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 文件中的重写或 return 命令可用于重定向浏览器,但 none 这些似乎可以解决我的问题...或者我可能误解了如何使用它们,因为我在尝试从 ./new url 加载时看到 'too many redirects' 错误页面。 ..
非常感谢任何有关如何解决此问题的指示。
谢谢。
您需要修改您的应用以将其根路径添加到 url,nginx 不会更改代理内容。
我正在尝试使用 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 文件中的重写或 return 命令可用于重定向浏览器,但 none 这些似乎可以解决我的问题...或者我可能误解了如何使用它们,因为我在尝试从 ./new url 加载时看到 'too many redirects' 错误页面。 ..
非常感谢任何有关如何解决此问题的指示。
谢谢。
您需要修改您的应用以将其根路径添加到 url,nginx 不会更改代理内容。