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

2fjabf4q  于 2023-06-05  发布在  Node.js
关注(0)|答案(1)|浏览(180)

我想在一台服务器上运行不同的应用程序,但它们之间的路由应该使用 * 路径 *,而不是 * 子域 *。
我读到了bouncyconnect vhost中间件,但它们只允许我将子域路由到不同的端口。
我想要这样的东西:
domain.com -> app1
domain.com/api-> app 2,以便对于app 2,/api/
domain.com/some/path-> app 3,对于app 3,/some/path/
路由树中的位置应该对应用程序透明,如果我在添加新应用程序时不必重新启动任何其他应用程序,那就太好了。
我必须自己编写代码,还是有解决方案?

kx5bkwkv

kx5bkwkv1#

假设每个应用程序都在自己的进程中运行,您基本上需要一个反向代理。
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);

相关问题