0

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

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

我想要这样的东西:

domain.com-> 应用程序1

domain.com/api-> app2,为了/apiapp2/

domain.com/some/path-> app3,为了/some/pathapp3/

路由树中的位置对应用程序应该是透明的,如果我在添加新应用程序时不必重新启动任何其他应用程序,那就太好了。

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

4

1 回答 1

5

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

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

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


如果这一切都发生在同一个进程中,只需userouterfrom app1 和 app2 安装到路径:

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

app1.use(app1.router);
app1.use('/api', app2.router);
app1.use('/some/path', app3.router);
于 2013-08-20T19:17:37.887 回答