我有一个托管我的开发项目的网站。每个项目都是node.js
个文件。问题是我只能在同一时间在线进行1个项目 - 除非我将它们托管在不同的端口。但是假设我想发布这样的2个项目:my_site.com/foo
,my_site.com/bar
,其中第一个由“foo.js”管理,第二个由“bar.js”管理。我怎么能这样做?
答案 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));
是一个单独的文件。
注意: 未经过测试