Как справиться с более чем одним доменом?
Вопрос
Мне нужно использовать node.js для 3 доменов. Как мне это сделать? На данный момент у меня есть одно приложение, которое связывает порт 80, как поддержать более одного домена? Я также использую кластерный модуль, который разбивает мое приложение в 3 процессах.
Решение
Наверное, лучший способ, используйте Подключите 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(){
});
Другие советы
Использовать 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.