NextcloudとONLYOFFICEエディターのリバースプロキシ設定
はじめに
異なるマシンに複数のサーバーソリューションをインストールすると、プロキシサーバーの設定に関する問題が発生することがあります。
この特定のケースでは、以下の3台の異なるマシンがあります。
- nginx — http://nginx,
- Nextcloud — http://nextcloud,
- ONLYOFFICEエディター — http://onlyoffice.
すべてDockerを使用してポート80でインストールされています。
正しい接続を確立するために、以下のアクションを実行する必要があります:
- nginxのカスタマイズにより、*http://nginx*へのリクエストがNextcloudを開くようにする。
- Nextcloudのカスタマイズにより、*http://nginx/editors/*で利用可能なドキュメントエディターと連携する。
この記事を読んで、nginx、Nextcloud、およびONLYOFFICE Docsのプロキシサーバーを正しく設定する方法を確認してください。
ステップ1. Nextcloudのプロキシ設定
nginxを介してNextcloudをプロキシするには、nginxの設定を変更し、Nextcloudの信頼できるドメインリストにそのアドレスを追加します。
必要な設定は、nginxコンテナの/etc/nginx/conf.d/default.confにあります。このファイルを次のようにします:
server {
listen 80;
location / {
proxy_pass_header Server;
proxy_pass http://nextcloud/;
}
}
proxy_passパスの最後のスラッシュに注意してください。
nginxの設定をリフレッシュするには、以下を実行します:
service nginx reload
'trusted_domain' => (0 => 'nextcloud', 1 => 'nginx')
ステップ2. ドキュメントエディターのプロキシ設定
再度、nginxサーバーのdefault.confを開き、もう一つのロケーションを追加します。
location /editors/ {
proxy_pass http://onlyoffice/;
}
しかし、これだけではエディターを実行するのに十分ではありません。デフォルトでは、ドキュメントエディターはリクエストに含まれるアドレスを使用してリソースへのリンクを生成します。エディターがプロキシサーバーに接続されていないため、仮想パスに関係なくリンクを生成します(例:*http://nginx/apps/files/*)。これは正しくありません。*/apps/files/*は*http://onlyoffice/*サーバーにあります。
これを修正するには、リクエストヘッダーでリンク生成のパスを「X-Forwarded-Host」ヘッダーで指定する必要があります。
設定ファイルの先頭に次のコードを追加します:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-Host $http_host/editors;
server {
listen 80;
location / {
proxy_pass_header Server;
proxy_pass http://nextcloud/;
}
location /editors/ {
proxy_pass http://onlyoffice/;
}
}
ステップ3. ONLYOFFICE-Nextcloudコネクタのインストール
ONLYOFFICEとNextcloudのインスタンスを相互にリンクするために、私たちの準備されたコネクタを使用します。コネクタはGitHubで利用可能ですが、最も簡単な方法はNextcloudアプリストアからインストールすることです。
インストール後、設定メニューに新しいオプションが表示されます。そこでは、ONLYOFFICEエディターのアドレスを指定する必要があります — *http://nginx/editors/*。