1

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

4

3 回答 3

2

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

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

于 2013-04-29T01:01:51.643 回答
1

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

这样,您的 Node 进程将保持完全独立,并且如果其中一个变得流行,以后可以轻松地将它们分离到不同的服务器。

于 2013-04-29T01:01:36.507 回答
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));

是一个单独的文件。

注意:未测试

于 2013-04-30T00:55:09.720 回答