Passa al contenuto principale

Server Multitenant

Configurazione del server multitenant​

  1. Installare il server Developer Edition

    È necessaria una licenza valida per la multi-tenancy per abilitare la modalità multi-tenancy.

    note

    Si prega di contattare il proprio assistente alle vendite per richiedere questa licenza.

    Si prega di registrare il prodotto seguendo le istruzioni fornite.

  2. Aprire il file di configurazione local.json e impostare il campo baseDir sul percorso della cartella che contiene le impostazioni dei tenant. Si consiglia di utilizzare il valore /var/www/onlyoffice/Data/tenants.

  3. In local.json, impostare il campo baseDomain sul dominio di secondo livello che servirà come dominio base per tutti i tuoi tenant.

  4. Le statistiche sulla licenza principale sono raccolte in un tenant predefinito.

    • Il nome del tenant predefinito è specificato nel campo defaultTenant all'interno di defaultTenant.

      note

      Non è possibile creare un altro tenant con questo nome.

    • Le richieste al baseDomain che non specificano un tenant vengono automaticamente indirizzate al tenant predefinito.

    • Il tenant predefinito non richiede configurazioni aggiuntive. Tuttavia, le richieste a questo tenant sono firmate utilizzando un segreto definito nel file local.json.

    • Visualizza le statistiche sulla pagina info del tenant predefinito.

Aggiunta di un nuovo tenant​

  1. Per aggiungere un nuovo tenant:

    • Creare una nuova cartella all'interno della directory baseDir sul server.

    • Il nome del tenant sarà formato utilizzando il nome della cartella e il baseDomain (ad esempio, se la cartella si chiama tenant1 e il baseDomain è example.com, il nome del tenant diventa tenant1.example.com).

      note

      Assicurarsi che questa cartella sia creata nel file system dove risiede default.json.

    All'interno di ciascuna cartella del tenant, includere i seguenti due file obbligatori:

    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
    }
    }
    note

    Implementare un file secret.key per ciascun tenant per garantire isolamento e sicurezza. Se assente, verrà utilizzato il segreto del tenant principale. Se è specificato un segreto JWT, quello in config.json avrà la precedenza.

    file system:

    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 – file obbligatorio con la licenza del tenant
    • config.json – è un file di configurazione obbligatorio che sovrascrive la configurazione principale del server
    note

    È obbligatorio compilare il segreto JWT.

  3. Il file license.lic sovrascrive campi specifici della licenza principale per il tenant. Le sue regole sono:

    • Firma: La firma della licenza non è richiesta.

    • Ereditarietà dei Campi: Puoi includere alcuni o tutti i campi della licenza principale. I campi non specificati predefiniranno i valori nella licenza principale e saranno convalidati di conseguenza.

    • Regolazioni dei Limiti: Non puoi aumentare i valori rispetto alla licenza principale, ma puoi diminuirli. I campi applicabili includono: connections, connections_view, users_count, users_expire, users_view_count, end_date, timelimited, advanced_api, branding, customization.

      Esempio: Potresti rimuovere branding e customization o impostare una modalità di prova.

      note

      Aumentare i valori è inefficace perché la licenza principale viene ricontrollata ogni volta.

    • Caching: Una volta letti, i valori della licenza vengono memorizzati nella cache per 5 minuti.

    Ad esempio, license.lic potrebbe contenere il seguente contenuto:

    {"branding":false,"connections":100,"users_count":0}
  4. Il file config.json ti consente di sovrascrivere alcune impostazioni del server. Le regole sono:

    • Impostazioni Non Sovrascrivibili: Le impostazioni utilizzate durante l'avvio del server (come indirizzi di servizi esterni, percorsi di log, licenze e cache dei file) non possono essere sovrascritte.
    • Impostazioni Sovrascrivibili: Puoi sovrascrivere le impostazioni che influenzano le operazioni in tempo reale, inclusa la configurazione WOPI, il filtraggio IP, il segreto JWT, la disabilitazione dell'accesso anonimo e i limiti di dimensione dei file.
    • Caching: Una volta letti, i valori di configurazione vengono memorizzati nella cache per 5 minuti.

    Ad esempio, il file config.json potrebbe avere il seguente contenuto:

    {
    "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
    }
    }
    }
    }
    }
    }