Создание SaaS-приложения в CodeIgniter, например Shopify, с пользовательским псевдонимом домена

Я работаю над SaaS-приложением. Мы принимаем Shopify / Magento Перейти и т. Д. В качестве ссылки.

  • Я использовал PHP Framework CodeIgniter.
  • Методология SaaS — несколько баз данных, одна база кода

Наша архитектура SaaS выглядит следующим образом:

SaaS Architecture

  • когда клиент регистрируется, база данных создается с его именем и содержит его конкретные базы данных.
  • когда клиент регистрируется, он получает поддомен (например: test1.example.com)
  • Клиент может добавить свой собственный домен, который указывает на определенный поддомен системы. (Например: test1.example.com на www.mydomain.com)

Как добиться этой функциональности?

2

Решение

Для этого вам нужно пройти через несколько вариантов конфигурации.

  1. Настройте DNS: создайте поддомен с помощью *. (прошу хозяина)
  2. Вы должны настроить apache или .htaccess, чтобы все запросы, поступающие на ваш домен, указывали на один и тот же каталог.
  3. Настройка базы данных: попробуйте узнать, как использовать несколько баз данных в codeigniter.

Это все. Наслаждайтесь!

1

Другие решения

Я думаю, что вам следует искать термин «приложение codeigniter multi Tennant», и, как уже было сказано, управление слишком большим количеством баз данных не является решением!

0

Вы можете достичь предлагаемого применения SAAS таким образом,

Будет 1 база данных для самого приложения, и еще N баз данных для клиентов, у каждого нового клиента будет новая база данных.

  • Разрешите регистрацию своим клиентам, запрашивая базовые данные + субдомен, чтобы выбрать, как блогпот, субдомены, занятые существующими клиентами, не будут разрешены для повторного использования
  • После успешной регистрации клиента будет создана одна отдельная БД, и они окажутся на своей панели инструментов. Здесь один сервер БД будет в порядке, но у него должно быть достаточно места и другой набор параметров для обработки нескольких баз данных.
  • Теперь вы можете просматривать список функциональных возможностей, а также некоторый предопределенный набор контента, который будет разделен между пользователями и загружен из «БД приложения». Все, что они добавляют, будет отправлено в их собственную независимую базу данных.
  • Здесь кодовая база будет развернута на одном кодовом сервере, и основной домен будет сопоставлен с этим, поэтому здесь будет происходить вход в систему / регистрация и т. Д., А идентификация пользователя будет происходить на уровне входа.

Приложение БД: Эта БД будет отвечать за хранение основных данных уровня приложения, т. Е. Профиля клиента + данных для входа в систему, других связанных с администратором материалов, которыми они хотели поделиться со своими клиентами. В случае с шоппингом, приложения, темы, макет, шаблоны могут быть основными вещами, которые будут храниться в этой БД.

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

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

WRT для субдомена и концепция собственного домена, вы можете сделать это с помощью механизма виртуального хостинга, вы можете сделать это с Apache, а также с сервером nginx.
— Субдомен: создайте конфигурационные файлы для каждого сервера, поместите их в нужное место, и любой созданный субдомен будет привязан к конкретному физическому виртуальному каталогу
— Customdomain: может создавать физический каталог, такой же, как поддомен, вместе с файлами конфигурации, но в этом случае вам нужно будет попросить вашего клиента выполнить привязку DNS с нашим IP-адресом.

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

0
По вопросам рекламы [email protected]