【问题标题】:Add domains to NodeJS Express http server on the fly即时将域添加到 NodeJS Express http 服务器
【发布时间】:2014-12-24 15:10:43
【问题描述】:

我正在托管多个域,每个域都使用 Express vhost 运行相同的节点应用程序。我使用 http.createServer 启动它们

var app = express(); 
require('./app.js')(function(theApp) {

    app.use(express.vhost(domainName1, theApp));
    app.use(express.vhost(domainName2, theApp));
    app.use(express.vhost(domainName3, theApp));
    var d = domain.create();
    d.run(function(){
        http.createServer(app).listen(80);
    }); 
});

是否可以做同样的事情,但能够在不重新启动节点应用程序的情况下即时向服务器添加新域? IE伪代码:

  • 执行上述操作
  • 等待添加域数据库记录
  • 添加新的虚拟主机
  • 重启必要的东西

我想确保现有域的用户在添加新域时获得尽可能少的停机时间(甚至没有停机时间)。

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    默认的 Express 行为是不根据 Host 标头进行区分。 vhost 中间件添加了这种行为。每当您发现要支持的新域时,您可能可以添加更多中间件……或者您可以首先不区分 Host 标头

    var app = express(); 
    require('./app.js')(function(theApp) {
        app.use(theApp);
        var d = domain.create();
        d.run(function(){
            http.createServer(app).listen(80);
        }); 
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      • 1970-01-01
      • 2016-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多