在node.js上运行多个站点

Gur*_*ngh 7 node.js

我打算用node.js做三个站点.我在网站中有一些常见的模板.我应该在单个node.js实例上运行所有三个站点吗?

我知道'vhost'中间件允许你在单个http服务器上运行多个域.有没有更好的选择呢?

我也有一些静态的html模板,不知道如何在node.js中处理这些?

最后,我想知道这种设置的托管选项?

Men*_*ual 14

我自己也必须做同样的事情.你想要做的是使用某种反向代理.

我使用的是:https://github.com/nodejitsu/node-http-proxy

只需安装代理包: npm install http-proxy

我所做的是在端口80上的服务器上运行代理.我在每个域上设置DNS以指向此服务器.

每个应用程序都在同一台服务器上运行(即时使用屏幕).

例如:

MySiteApplication1 - 3001
MySiteApplication2 - 3002
MySiteApplication3 - 3003
Run Code Online (Sandbox Code Playgroud)

然后您的代理服务器文件将如下所示

var httpProxy = require('http-proxy');

var server = httpProxy.createServer({
   router: {
     'mysite1.com': 'localhost:3001',
     'mysite2.com': 'localhost:3002',
     'mysite3.com': 'localhost:3003'
   }
});

server.listen 80
Run Code Online (Sandbox Code Playgroud)

  • 这个答案已经过时了.`node-http-proxy` [已删除](https://github.com/nodejitsu/node-http-proxy/issues/652)`router`选项,因为它"属于一个单独的模块".[`http-master`](https://github.com/encharm/http-master)似乎是对此的回答,并在内部使用`node-http-proxy`. (2认同)