Конфигурация базы данных Nodejs на основе доступного домена

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

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

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

Architecture

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
159
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

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

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

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

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

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

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

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

Я использовал аналогичный подход к работе на разных портах и ​​настроил обратный прокси-сервер для перенаправления запросов на определенный сервер на основе имени хоста. Кстати, спасибо за ответ.

Vishnudev 29.05.2019 07:51

Другие вопросы по теме