Перейти к основному содержимому

Мультитенантный сервер

Настройка мультитенантного сервера​

  1. Установите сервер Developer Edition

    Для включения мультитенантного режима требуется действующая мультитенантная лицензия.

    примечание

    Чтобы запросить такую лицензию, обратитесь к своему менеджеру по продажам.

    Зарегистрируйте продукт, следуя приведенной инструкции.

  2. Откройте файл конфигурации local.json и укажите в поле baseDir путь к папке, содержащей настройки тенантов. Рекомендуем использовать значение /var/www/onlyoffice/Data/tenants.

  3. В файле local.json укажите в поле baseDomain домен второго уровня, который будет базовым доменом для всех ваших тенантов.

  4. Статистика по основной лицензии собирается в тенанте по умолчанию.

    • Имя тенанта по умолчанию задается в поле defaultTenant в defaultTenant.

      примечание

      Создать другой тенант с таким же именем нельзя.

    • Запросы к baseDomain, в которых не указан тенант, автоматически направляются в тенант по умолчанию.

    • Тенант по умолчанию не требует дополнительной настройки. Однако запросы к этому тенанту подписываются с помощью секрета, заданного в файле local.json.

    • Статистику можно посмотреть на странице info тенанта по умолчанию.

Добавление нового тенанта​

  1. Чтобы добавить новый тенант:

    • Создайте новую папку в каталоге baseDir на сервере.

    • Имя тенанта формируется из имени папки и baseDomain (например, если папка называется tenant1, а baseDomain — example.com, имя тенанта будет tenant1.example.com).

      примечание

      Убедитесь, что эта папка создана в той файловой системе, где находится default.json.

    В каждую папку тенанта поместите следующие два обязательных файла:

    default.json:

    "tenants": {
    "baseDir": "/var/www/onlyoffice/Data/tenants",
    "baseDomain": "mydomain.example",
    "filenameConfig": "config.json",
    "filenameSecret": "secret.key",
    "filenameLicense": "license.lic",
    "defaultTenant": "localhost",
    "cache": {
    "stdTTL": 300,
    "checkperiod": 60,
    "useClones": false
    }
    }
    примечание

    Создайте файл secret.key для каждого тенанта, чтобы обеспечить изоляцию и безопасность. Если его нет, будет использоваться секрет основного тенанта. Если секрет JWT указан, приоритет имеет секрет из config.json.

    файловая система:

    root@3694c287928a:/var/www/onlyoffice/Data/tenants# 1s -a
    . .. tenant1 tenant2
    root@3694c287928a:/var/www/onlyoffice/Data/tenants#
  2. root@3694c287928a:~# 1s /var/www/onlyoffice/Data/tenants/tenant1
    config.json license.lic
    root@3694c287928a:~#
    • license.lic — обязательный файл с лицензией тенанта
    • config.json — обязательный файл конфигурации, который переопределяет основную конфигурацию сервера
    примечание

    Секрет JWT обязательно нужно заполнить.

  3. Файл license.lic переопределяет для тенанта отдельные поля основной лицензии. Правила следующие:

    • Подпись: подпись лицензии не требуется.

    • Наследование полей: можно указать некоторые или все поля основной лицензии. Для неуказанных полей используются значения из основной лицензии, и они проверяются соответствующим образом.

    • Изменение ограничений: увеличить значения по сравнению с основной лицензией нельзя, но можно уменьшить. Это относится к полям connections, connections_view, users_count, users_expire, users_view_count, end_date, timelimited, advanced_api, branding, customization.

      Пример: можно убрать branding и customization или задать пробный режим.

      примечание

      Увеличение значений не дает результата, так как основная лицензия каждый раз проверяется повторно.

    • Кэширование: после чтения значения лицензии кэшируются на 5 минут.

    Например, файл license.lic может иметь следующее содержимое:

    {"branding":false,"connections":100,"users_count":0}
  4. Файл config.json позволяет переопределить некоторые настройки сервера. Правила следующие:

    • Непереопределяемые настройки: настройки, используемые при запуске сервера (например, адреса внешних сервисов, пути к журналам, лицензии и файловый кэш), переопределить нельзя.
    • Переопределяемые настройки: можно переопределить настройки, которые влияют на работу во время выполнения, в том числе настройки WOPI, фильтрацию по IP-адресам, секрет JWT, отключение анонимного доступа и ограничения на размер файлов.
    • Кэширование: после чтения значения конфигурации кэшируются на 5 минут.

    Например, файл config.json может иметь следующее содержимое:

    {
    "wopi": {
    "enable": true
    },
    "services": {
    "CoAuthoring": {
    "secret": {
    "inbox": {"string": "secret", "file": ""},
    "outbox": {"string": "secret", "file": ""},
    "session": {"string": "secret", "file": ""}
    },
    "token": {
    "enable": {
    "browser": true,
    "request": {
    "inbox": true,
    "outbox": true
    }
    }
    }
    }
    }
    }