Конфигурация базы данных Nodejs на основе доступного домена - PullRequest
0 голосов
/ 22 мая 2019

У меня есть два домена abc.com и xyz.com, указывающие на один и тот же сервер NodeJS. Основываясь на домене, я хочу загрузить конфигурацию, которая будет сохраняться для этого домена, то есть для xyz.com Я хочу подключиться к Database1, а для abc.com Я хочу подключиться к Database2.

Как мне это сделать? Это вообще возможно или рекомендуется сделать?

Я начал с загрузки конфигурации по первому запросу, получив имя хоста от req.hostname. Есть ли лучший способ сделать это?

Architecture

1 Ответ

1 голос
/ 28 мая 2019

Несколько стратегий -

1.Разверните один и тот же код несколько раз, но на разных портах.

Обратный прокси-сервер отправляет запрос на правильный сервер.Я делаю это в настоящее время, размещая несколько блогов-призраков на одном и том же VPS.Один работает на порту 3000, другой на 3010.

Плюсы - Менее хрупкая настройка, простое масштабирование, приложение не должно знать о рабочей среде.Если один домен подвергается атаке, другой автоматически не становится жертвой.

Минусы - Может быть невозможно в условиях ограниченных ресурсов.Развертывания могут включать повторяющуюся работу.

2.Прочитайте имя хоста

Отличный вариант, если набор функций почти такой же, но изменяется только доменное имя.Вы читаете файл конфигурации, как вы указали в зависимости от имени хоста.

Плюсы - Более простое развертывание, отличный вариант для сред с ограниченными ресурсами.

Минусы - Излишне жесткая связь, все домены станут недоступными в случаеошибки сервера, может возникнуть проблема с масштабированием.

Лично я предпочитаю развертывание на разных портах до тех пор, пока код не будет зависеть от имен хостов.Если вы просто создаете продукт, где в URL-адресе должен присутствовать какой-то уникальный идентификатор, такой как mycompany.slack.com, тогда использование поддоменов в DNS может быть лучшей идеей.

...