我想在一台服务器上运行不同的应用程序,但它们之间的路由应该使用路径而不是子域。
我读到了 bouncy 和 connect vhost中间件,但他们只允许我将子域路由到不同的端口。
我想要这样的事情:
domain.com
- > APP1
domain.com/api
- &gt; app2,app {<1}} /api
为app2
/
- &gt; app3,app3的domain.com/some/path
为/some/path
路由树中的位置应该对应用程序透明,如果我在添加新应用时不必重新启动任何其他应用,那将会很不错。
我必须自己编写代码还是有一些解决方案?
答案 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);