この記事はAIによって翻訳されました

マルチテナントサーバー

マルチテナントサーバーの設定

  1. デベロッパー版サーバーをインストール

    マルチテナントモードを有効にするには、有効なマルチテナントライセンスが必要です。

    このライセンスをリクエストするには、販売担当者にお問い合わせください。

    提供された指示に従って製品を登録してください。

  2. local.json設定ファイルを開き、baseDirフィールドをテナント設定を含むフォルダーのパスに設定します。/var/www/onlyoffice/Data/tenantsの値を使用することをお勧めします。
  3. local.jsonで、baseDomainフィールドを、すべてのテナントのベースドメインとして機能する第2レベルドメインに設定します。
  4. メインライセンスの統計はデフォルトのテナントで収集されます。
    • デフォルトテナントの名前はdefaultTenant内のdefaultTenantフィールドで指定されています。

      この名前で別のテナントを作成することはできません。

    • テナントを指定しないbaseDomainへのリクエストは、自動的にデフォルトテナントにルーティングされます。
    • デフォルトテナントは追加の設定を必要としません。ただし、このテナントへのリクエストはlocal.jsonファイルで定義されたシークレットを使用して署名されます。
    • デフォルトテナントのinfoページで統計を表示します。

新しいテナントの追加

  1. 新しいテナントを追加するには:
    • サーバーのbaseDirディレクトリ内に新しいフォルダーを作成します。
    • テナントの名前はフォルダー名とbaseDomainを使用して形成されます(例:フォルダーがtenant1という名前でbaseDomainexample.comの場合、テナント名はtenant1.example.comになります)。

      このフォルダーがdefault.jsonが存在するファイルシステムに作成されていることを確認してください。

    各テナントフォルダー内に次の2つの必須ファイルを含めます:

    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ファイルは、テナントのためにメインライセンスの特定のフィールドを上書きします。そのルールは以下の通りです:
    • 署名:ライセンス署名は不要です。
    • フィールド継承:メインライセンスから一部またはすべてのフィールドを含めることができます。指定されていないフィールドはメインライセンスの値にデフォルトされ、適切に検証されます。
    • 制限調整:メインライセンスと比較して値を増やすことはできませんが、減らすことはできます。適用可能なフィールドには、connectionsconnections_viewusers_countusers_expireusers_view_countend_datetimelimitedadvanced_apibrandingcustomizationが含まれます。

      例:brandingcustomizationを削除したり、試用モードを設定したりすることができます。

      値を増やすことは効果がありません。メインライセンスは毎回再確認されるためです。

    • キャッシング:一度読み取られると、ライセンスの値は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
         }
        }
       }
      }
     }
    }
次の項目が含まれている記事:タグ:
すべてのタグを見る