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

时间:2013-08-20 18:27:52

标签: node.js express connect

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

我读到了 bouncy connect vhost中间件,但他们只允许我将子域路由到不同的端口。

我想要这样的事情:

domain.com - > APP1

domain.com/api - &gt; app2,app {<1}} /api为app2

/ - &gt; app3,app3的domain.com/some/path/some/path

路由树中的位置应该对应用程序透明,如果我在添加新应用时不必重新启动任何其他应用,那将会很不错。

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

1 个答案:

答案 0 :(得分:5)

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

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

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


如果在同一过程中发生这种情况,只需将use app1和app2中的router安装到路径:

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

app1.use(app1.router);
app1.use('/api', app2.router);
app1.use('/some/path', app3.router);