Как следует реализовать корпоративные аккаунты на web-сайте?

Уже имеется реализация web-сайта с авторизацией пользователей.
Необходимо сделать функционал корпоративных акаунтов, чтобы пользователи такого аккаунта могли заходить по ссылке corporate_account_name.main_domain.com и видели такой же сайт что и на main_domain.com только это версия специально для них.
Как правильно это делается и куда копать (хотя бы список технологий, фреймворков):
  1. Один код на все поддомены?
  2. Заводить отдельную базу на каждый поддомен? При этом нужен доступ к данным из main_domain ко всем поддоменам и наоборот (поддомен -> main_domain).
  3. Вполне вероятно, что при обновлении кода может понадобиться долгая миграция данных БД. Нужно чтобы при этом все поддомены не повисли, пока обновляется одна из баз.
  4. Сервер на apache. При этом перезагрузка apache при каждом создании корпоративного аккаунта невозможна.
  5. Корпоративные акаунты создаются через веб-интерфейс main_domain.com, как и регистрация обычного пользователя. Не вручную!
  6. Желательно под django.
  • Вопрос задан
  • 262 просмотра
Пригласить эксперта
Ответы на вопрос 2
sim3x
@sim3x
1. Если под клиента ничего не будет подгоняться
2. Аналогично 1
3. Миграция затронет всех. Понятие "долго" в ИТ не применяется - у нас тут есть таймеры
4. Сервер апач для питон проектов никто не применяет. Перезагрузка nginx-uwsgi занимает секунды
5. Как напишешь так и будет
6. Писать проекты можно только на нормальном фреймворке, те только на джанго
Ответ написан
Комментировать
@mgremlin
Бизнес в и вокруг IT
Я бы поставил фронтом nginx 8-)
Впрочем, и в апаче тоже запросто можно организовать редирект вида customer.domain.com -> domain.com?customer=customer. Дальше customerID идет в сессию, и в зависимости от этого значения поднимается коннект в базу, etc.
Тогда:
а) код - один
б) персонализация - возможно, в зависимости от ID в сессии
в) базы - персонализированы и независимы, хоть на разных серверах их располагай
г) перегружать вообще ничего не надо, новыми аккаунтами хоть обсоздавайся

При создании нового аккаунта просто пишется набор документов в главную базу, которая содержит параметры клиентов - строка подключения к клиентской DB, например, и все такое прочее. Ну и сами базы создаются.
И никакие технологии и фреймы тогда тут уже и не нужны...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы