Pergunta

I need to use Node.JS for 3 domains. How can I do it? At the moment I have one application that binds port 80, how to support more than one domains? I also use cluster module that forks my application in 3 processes.

Foi útil?

Solução

Probably best way, use connect vhost, which is a connect module.

Or: you can rewrite your URLs with a global URL handler, and then write your constraints based on the rewritten 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(){ 

});

Outras dicas

Use https://github.com/nodejitsu/node-http-proxy.

You need to run the reverse proxy on port 80 ( assuming you are using HTTP and not HTTPS) and then the request be routed to different services ( i.e. node servers.). The actual node server will be using non-standard ports to listen.

e.g

Service A (for domain A ) - 8001 
Service B (for domain B ) - 8002
Service C (for domain C ) - 8003.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top