メインコンテンツまでスキップ

NextcloudとONLYOFFICEエディターのリバースプロキシ設定

はじめに​

異なるマシンに複数のサーバーソリューションをインストールすると、プロキシサーバーの設定に関する問題が発生することがあります。

この特定のケースでは、以下の3台の異なるマシンがあります。

すべてDockerを使用してポート80でインストールされています。

正しい接続を確立するために、以下のアクションを実行する必要があります:

この記事を読んで、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

次に*http://nginx*ドメインを追加します。Nextcloudコンテナの`/var/www/html/config/config.php`で設定を開きます。そこに*trusted_domain*セクションを見つけるか追加し、nginxアドレスを追加します。すべての変更が有効になると、この設定部分は次のようになります:

'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/*。