在一台服务器上路由到不同的node.js express-apps

K..*_*K.. 0 connect node.js express

我想在一台服务器上运行不同的应用程序,但它们之间的路由应该使用路径而不是子域.

我读到了有关弹性连接vhost中间件的信息,但它们只允许我将子域路由到不同的端口.

我想要这样的东西:

domain.com - > app1

domain.com/api- > APP2,为了使/api/对于APP2

domain.com/some/path- > APP3,为了使/some/path/对于APP3

路径树中的位置对于应用程序应该是透明的,如果我在添加新应用程序时不必重新启动任何其他应用程序,那将是很好的.

我必须自己编写代码还是有一些解决方案?

jos*_*736 5

假设每个应用程序都在自己的进程中运行,那么您基本上需要一个反向代理.

http-proxy是你最好的选择.您可以混合使用Express应用程序和代理("app1"),并将/ api的请求转发到app2和/ some/path到app3.

app2和app3可以在同一个盒子或不同的盒子上运行.


如果这一切发生在同一过程中,只是userouter从APP1和App2安装的路径:

var app1=express(), app2=express(), app3=express();

app1.use(app1.router);
app1.use('/api', app2.router);
app1.use('/some/path', app3.router);
Run Code Online (Sandbox Code Playgroud)