Создание нового экземпляра приложения после регистрации аккаунта

Хочу сделать сервис, допустим хостится на www.foo.ru

В этом сервисе предполагается регистрация аккаунтов в основном компании (ип,юл)

После регистрации им нужно создать как бы экземпляр приложения со своей базой и со своим доменом, например введут имя компании «bar», после регистрации они попадают на домен www.foo.bar.ru (или www.bar.foo.ru)

Видел немало сервисов именно так делают, как это можно сделать?

Почему нужно БД на каждый аккаунт: в основном чтобы каждая компания имела только свои данные, свои копии баз, дампы/миграции и тд


Ответы (1 шт):

Автор решения: Aleksey Vaganov

Можно реализовать следующую архитектуру по принципу виртуального хостинга:

  1. Под каждый аккаунт создается отдельный пользователь в домашней папке которого локализуются данные его приложения
  2. Вебсервер и сервер баз данных один на весь хост
  3. Для каждого приложения на аккаунте создается свой пользователь и своя база данных

Для этого вы можете:

  1. Зарегистрируйте домен foo.ru
  2. Создайте скрипт добавляющий поддомен bar в DNS зону домена
  3. Создайте скрипт, который добавит конфиг для поддомена
  4. Создайте скрипт, который добавил бы на сервере пользователя и его домашнюю папку
  5. Создайте скрипт, который создаст пользователя БД и саму БД и даст нужные права
→ Ссылка