Как запустить один проект Django для разных клиентов - PullRequest
0 голосов
/ 31 мая 2018

Я разработал веб-приложение с именем «SANET», используя django, gunicorn и nginx для клиента с именем customerA, и предоставил ему доступ с помощью customerA.mydomain.com.

. Теперь новыйЗаказчик customerB заказал выделенную версию.

Вот что я могу сделать (я хочу, чтобы они все были на определенном сервере):

  1. сделать копию из проекта иразверните его на customerB.mydomain.com как совершенно другой проект
  2. найдите способ просто изменить конфигурацию базы данных проекта в зависимости от того, какой домен запрашивается

Буду признателен, если вы поможетевыбрать один из этих вариантов или предложить мне лучший способ.

1 Ответ

0 голосов
/ 31 мая 2018

Многие клиенты, использующие одну систему, известны как «мультитенантные» или мультитенантные системы.

Здесь - это сравнение пакетов django, которые могут быть полезны для этого.Я предлагаю вам прочитать документы и обзоры некоторых из них, чтобы получить представление о том, как они работают и подходят ли они для вас.


Но если есть хоть малейший шанс, что один из вашихклиенты будут нуждаться в дополнительных настройках в будущем, тогда я предлагаю вам запустить их на отдельных экземплярах django (отдельная база данных и gunicorn, но вы можете использовать только один nginx).

Такое разделение делает разработку и сопровождение проще, чем кодирование с помощьюif с, чтобы отличить клиентов.

...