如何处理多个域名?

时间:2011-11-30 10:03:09

标签: node.js express

我需要将Node.JS用于3个域。我该怎么做?目前我有一个绑定端口80的应用程序,如何支持多个域? 我还使用了在3个进程中分配我的应用程序的集群模块。

2 个答案:

答案 0 :(得分:2)

可能最好的方法是使用connect vhost,这是一个连接模块。

或者:您可以使用全局URL处理程序重写URL,然后根据重写的URL编写约束:

app.get('*', function(req, res, next){ 
  if(req.headers.host === 'domain1.com')
    req.url = '/domain1' + req.url;
  else if(req.headers.host === 'domain2.com')
    req.url = '/domain2' + req.url;
  next(); 
})

.get('/domain1/index', function(){ 

}) 

.get('/domain2/index', function(){ 

});

答案 1 :(得分:2)

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

您需要在端口80上运行反向代理(假设您使用的是HTTP而不是HTTPS),然后将请求路由到不同的服务(即节点服务器)。实际的节点服务器将使用非标准端口进行监听。

例如

Service A (for domain A ) - 8001 
Service B (for domain B ) - 8002
Service C (for domain C ) - 8003.