【问题标题】:Running multiple sites on node.js在 node.js 上运行多个站点
【发布时间】:2012-10-17 23:52:57
【问题描述】:

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

我知道“虚拟主机”中间件允许您在单个 http 服务器上运行多个域。有没有更好的选择来做到这一点?

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

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

【问题讨论】:

标签: node.js


【解决方案1】:

我自己只需要做同样的事情。你想要做的是使用某种反向代理。

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

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

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

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

例如:

MySiteApplication1 - 3001
MySiteApplication2 - 3002
MySiteApplication3 - 3003

那么您的代理服务器文件将如下所示

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

【讨论】:

  • 谢谢 Brendan,您在哪里托管您的节点应用程序? httpProxy 在性能方面是如何工作的?您是否有任何静态数据,如果有,那么您将如何处理?干杯
  • 我将它托管在我购买的 VPS 上。所以像 linode 这样的东西很好。对于静态数据,您可能想要使用 nginx 之类的东西,但我没有遇到任何问题。你可以使用ab 来测试它:)
  • 这个答案已经过时了。 node-http-proxy removed router 选项,因为它“属于单独的模块”。 http-master 似乎是这个问题的答案,并在内部使用 node-http-proxy
  • @Nateowami 他们已经删除了router 选项,但有一种方法可以用node-http-proxy 做同样的事情。见Pradino's answer to similar question
猜你喜欢
  • 2013-10-11
  • 2016-10-13
  • 2011-12-18
  • 1970-01-01
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
相关资源
最近更新 更多