¿Cómo manejar más de un dominio?
Pregunta
Necesito usar Node.js para 3 dominios. ¿Cómo puedo hacerlo? En este momento tengo una aplicación que vincula el puerto 80, ¿cómo admitir más de un dominio? También uso el módulo de clúster que bifurca mi aplicación en 3 procesos.
Solución
Probablemente la mejor manera, usar conectar VHOST, que es un módulo de conexión.
O: puede reescribir sus URL con un controlador de URL global y luego escribir sus restricciones basadas en la URL reescritada:
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(){
});
Otros consejos
Usar https://github.com/nodejitsu/node-http-proxy.
Debe ejecutar el proxy inverso en el puerto 80 (suponiendo que esté utilizando http y no https) y luego la solicitud se enruta a diferentes servicios (es decir, servidores de nodo). El servidor de nodo real utilizará puertos no estándar para escuchar.
p.ej
Service A (for domain A ) - 8001
Service B (for domain B ) - 8002
Service C (for domain C ) - 8003.