如何使用相同的端口服务不同的node.js应用程序?

时间:2013-04-29 00:57:37

标签: node.js

我有一个托管我的开发项目的网站。每个项目都是node.js个文件。问题是我只能在同一时间在线进行1个项目 - 除非我将它们托管在不同的端口。但是假设我想发布这样的2个项目:my_site.com/foomy_site.com/bar,其中第一个由“foo.js”管理,第二个由“bar.js”管理。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

你需要一个代理人。您为每个单独的节点进程分配不同的端口。代理将端口80上的流量转发到适当的后端节点进程。

这可以通过node-http-proxy(https://github.com/nodejitsu/node-http-proxy)或任何Web服务器来完成。 Nginx和lighttpd让它变得非常容易,Apache不那么容易,但仍然完全可行。

答案 1 :(得分:1)

设置Nginx进程以将代理反向到您的Node进程。 Nginx进程将保留在端口上,并将my_site.com/foo的请求发送到node foo.js后端进程,并将my_site.com/bar的请求发送到node bar.js后端进程。

通过这种方式,您的节点进程可以完全独立,如果其中一个服务器受欢迎,可以在以后轻松分离到不同的服务器。

答案 2 :(得分:0)

如果您使用express / connect,则可以使用

var bar = require("./bar"),
foo = require("./foo");
app.use(express.vhost("my_site.com/bar", bar));
app.use(express.vhost("my_site.com/foo", foo));

是一个单独的文件。

注意: 未经过测试