代码之家  ›  专栏  ›  技术社区  ›  Mark Smith

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

  •  0
  • Mark Smith  · 技术社区  · 7 年前

    我正在尝试使用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文件中的rewrite或return命令可以用来重定向浏览器,但是这些命令似乎都不能解决我的问题。。。或者我可能不明白如何使用它们,因为我看到一个'太多的重定向'错误页面时,试图从新的网址加载。。。

    我真的很感激任何关于如何解决这个问题的指点。

    谢谢。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Vasfed SAJITHA MARIYAM    7 年前

    你需要修改你的应用程序,将其根路径预先设置为url,nginx不会改变代理内容。