Skip to main content

Многоаренда (Multi-Tenancy) Изоляция

Ultimate Multisite: Multi-Tenancy 1.2.0 теперь поддерживает изоляцию базы данных и файловой системы для суверенных арендаторов на уровне каждого подсайта. Это позволяет держать данные арендатора отдельными, сохраняя при этом настройку сети, выставление счетов и администрирование.

Стратегия изоляции

Используйте суверенную изоляцию для клиентов, которым требуется более сильное разделение данных, выделенное хранилище файловой системы или отдельная граница хоста.

Каждый суверенный арендатор должен иметь:

  • Выделенную базу данных арендатора или стратегию префикса базы данных, одобренную для хоста.
  • Выдельный корень файловой системы арендатора.
  • Запись в реестре арендаторов, которая сопоставляет сайт с его базой данных, корневым путем, именем хоста и моделью изоляции.
  • Результат проверки миграции перед тем, как арендатор будет считаться активным (live).

Привязка к хосту базы данных

Версия 1.2.0 меняет поведение по умолчанию для привязки к машине на одном сервере (same-machine host binding) для суверенных установок. Значения типа localhost нормализуются так, чтобы Bedrock, FrankenPHP и установки WordPress в контейнерах могли предоставлять и проверять разрешения относительно строки хоста, которую видит MySQL на самом деле.

При настройке суверенного арендатора:

  1. Установите хост базы данных на значение, требуемое средой выполнения (runtime) арендатора.
  2. Используйте localhost для установок с локальным сокетом (local socket installs), когда хост ожидает локальных подключений.
  3. Используйте 127.0.0.1 или имя службы (service hostname) только тогда, когда сервер базы данных предоставляет привилегии этому хосту.
  4. Запустите проверку миграции после изменения привязки к хосту.

Если проверка показывает ошибки предоставления разрешений, сравните разрешения пользователя в БД арендатора с настроенной привязкой к хосту. Пользователь, которому предоставлено разрешение для user@localhost, отличается от [email protected] или user@%.

Корень файловой системы

Тенент корневой каталог перезагрузmalarda һәм диппойментарда тулы булган булырга тиеш. Убактым моңтау юллары (temporary mount paths) исәптән качкан. Bedrock-стиль инсталлаулар өчен, тенент корневой каталогының тенент ботстрапы тарафыннан күтүе булган WordPress веб-корень белән бергә якила торганды тарибездер.

Провизирование тәртипләре (Provisioning order)

Безнең янәчәлек тенентлары өчен, төп тәртипне аңлагыз:

  1. Тенент реестры Eintragны ясау.
  2. Тенент базасын һәм база системәсе юзерын ясау.
  3. Тенент схемасын ботстраплау (Bootstrap).
  4. Тенент юзерларын провизирование etmek.
  5. Тенент файлын система юлларын конфигурацияләү.
  6. Миграцияны тарибезле (migration) текэсләделекне ясау.
  7. Тарибезле успешно тәмамланганынан соң маршрутизацияны яки DNS-ны өзгөртү.

Бу тәртип, база системәсе, юзерлар һәм файлын система дайын булмаган вакытта бөтенләп изоляцияланган тенентларга трафик күтмәсенең алдын ала.

Суверен клиентләрне ялми (Sovereign customer management flows)

Ultimate Multisite v2.13.0 суверен режим (sovereign mode) ясалганда клиентләрне ялми тәэмин итү әнкыларын төп сайтта саклап калдыра. Тенент изоляцияланган WordPress инсталлау какына якын эшләп бирелә, әмма сете булмалар белән бәйле клиентгә мөһерлек (membership), яки бөтен укытлы мәгълүмат белән бәйле әнкылар өчен, клиентне тенент вакытында аңлап тәмамлау вруа лекке китәргә яки төп сайтта кайтарып göndөрәргә кирәк.

Топ сайт (main-site) тәртибе төмнәчәлекләр өчен кулланиклады:

  • Чек-аут һәм план өзгөртүләре.
  • Каконт обзорле һәм клиент профили әнкылары.
  • Тәрих адресларын güncelleшү һәм төлөм-менеджмент экраннары.
  • Фактура (invoice) һәм төлөм-тарихи караулар.
  • Сайтны ясау яки сайтын өчрү (deleting a site) сыйлап кайтмалар.
  • Шаблон (template) өзгөртүләре.
  • Домен маппиләшмәсе һәм беренче домен өзгөртүләре.

Когда клиент начинает одно из этих действий с суверенного арендатора (tenant), Ultimate Multisite строит соответствующий URL основного сайта и сохраняет исходного арендатора как целевой пункт возврата, когда это безопасно. Это позволяет клиентам завершить управляемое действие по сетевым записям, а затем вернуться в контекст арендатора, не дублируя при этом информацию о выставлении счетов или членстве в суверенной базе данных.

Для операторов практическое правило таково: страницы выставления счетов (billing), учетной записи (account), оформления заказа (checkout), счета (invoice), шаблона (template) и управления доменом (domain-management) должны оставаться доступными на основном сайте для суверенных сетей. Панели арендаторов могут ссылаться на эти страницы, но основной сайт остается источником истины для действия.