nginx 代理到子目录中的远程 node.js express 应用程序

Den*_*zus 3 proxy nginx node.js express

我完全陷入了一种情况,即我想在一台服务器上拥有多个节点应用程序。通过在不同端口上运行应用程序,我可以正常工作。我可以通过输入带有端口的 IP 地址来访问应用程序。

我想通过使用不同的子目录从我的 nginx 服务器代理应用程序,如下所示:

my.domain

location /app1 {
  proxy_pass http://10.131.6.181:3001;
}
location /app2 {
  proxy_pass http://10.131.6.181:3002;
}
Run Code Online (Sandbox Code Playgroud)

这样做我不得不将所有快速路由移动到 /app1 的 application1。这有效,但现在我被静态文件困住了。

我现在可以使用http://10.131.6.181:3001/app1访问应用程序,这很棒,但是通过http://my.domain/app1没有加载静态文件。

静态文件可以直接访问http://10.131.6.181:3001/css但不能通过代理http://my.domain/css

理想情况下,我希望将应用程序放在不同的端口上,而没有快速路由中的子目录,而只有代理中的子目录。在过去的 5 个小时里,我试图将头穿过墙壁,但没有取得任何成果。

现在,如果至少可以通过 nginx 代理获取静态文件,我会很高兴。

Avn*_*mon 6

任何需要的人的更新答案:

代替

location /app1 {
  proxy_pass http://10.131.6.181:3001/app1;
}
Run Code Online (Sandbox Code Playgroud)

location /app1/ {
  proxy_pass http://10.131.6.181:3001/;
}
Run Code Online (Sandbox Code Playgroud)

或者如果在本地

location /app1/ {
  proxy_pass http://localhost:3000/;
}
Run Code Online (Sandbox Code Playgroud)

这是正确的方法,这样你就不需要修改 express. Express 只会收到 /app1/ 之后的部分