SSL を使用して NGINX のバックグラウンドで Confluence を実行する
このページでは、Confluenceの リバース プロキシ としてNGNIXをセットアップする方法について説明します。
このページに記載されている構成は、次のシナリオの結果を示しています。
- NGINX との外部クライアント接続が SSL で保護されている。NGINX と Confluence Server の間の接続が保護されていない。
- Confluence Server と NGINX が同じマシン上で実行されている。
On this page
実行中の NGINIX インスタンスが存在することを想定しています。そうでない場合は、NGINX のダウンロードやインストールについて「NGINX ドキュメント」をご確認ください。サーバー マシン上に SSL 証明書をインストールする必要があります。WebSockets (1.3 以降) をサポートする NGINX バージョンが必要です。
チームが Confluence Server モバイル アプリを使用ことを計画している場合、信頼できる認証局が発行した証明書が必要となります。自己署名証明書や、信頼されない認証局またはプライベート認証局が発行した証明書でアプリを使用することはできません。
アトラシアン サポートは、NGINX などのサードパーティ製ツールの設定に関するサポートは提供していません。質問がある場合は、NGINX のドキュメントを参照するか、アトラシアン コミュニティで質問するか、ソリューション パートナーからのサポートを受けてください。
ステップ 1: コンテキスト パスの設定
コンテキスト パスを使用せずに Confluence にアクセスしたい場合 ( www.example.com など)またはサブドメイン経由 (confluence.example.com) でアクセスする場合は、このステップをスキップします。
Tomcat の Confluence のアプリケーション パス (ホスト名とポートに続く部分) を設定します。<installation-directory>/conf/server.xml
を編集し、"Context" 定義を見つけます。
<Context path="" docBase="../confluence" debug="0" reloadable="false">
次のように変更します。
<Context path="/confluence" docBase="../confluence" debug="0" reloadable="false">
この例では、コンテキスト パスとして /confluence
を使用しています。/resources
は Confluence によって使用されており、問題を防ぐため、コンテキスト パスとして使用することはできない点にご注意ください。
Confluence を再起動し、http://example:8090/confluence にアクセス可能かどうかを確認します。
ステップ 2: Tomcat コネクタを設定する
同じ <installation-directory>conf/server.xml
ファイルで、開始点としてサンプル コネクタを使用します。
既定のコネクタをコメント アウトします (プロキシされないアクセス用)。
「HTTPS - Apache または Nginx 経由の、Confluence へのプロキシされた HTTPS アクセス」見出しの下に記載されているコネクタのコメントを外します。
次の最終行のように、proxyName と proxyPort を挿入します。
<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
maxThreads="48" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"
scheme="https" secure="true" proxyName="www.example.com" proxyPort="443"/>
protocol
と proxyName
に正しい値が含まれていることを確認します。
ステップ 3: NGINX の構成
次の例のように、NGINX でリッスン サーバーを指定する必要があります。NGINX 構成に以下を追加します。
サーバー名、および SSL 証明書とキーの場所を置き換えます。
この例では、ユーザーは共同編集に必要な Synchrony に直接接続します。
server {
listen www.example.com:80;
server_name www.example.com;
listen 443 default ssl;
ssl_certificate /usr/local/etc/nginx/ssl/nginx.crt;
ssl_certificate_key /usr/local/etc/nginx/ssl/nginx.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-
POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-
AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-
AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-
ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-
RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-
SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-
SHA:!DSS';
ssl_prefer_server_ciphers on;
location /confluence {
client_max_body_size 100m;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8090/confluence;
}
location /synchrony {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8091/synchrony;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
詳細は、http://nginx.org/en/docs/http/ngx_http_proxy_module.html を参照してください。
注: SSL と Confluence を同じサーバー上で構成する場合、この例の ssl on;
を含めないでください。
ssl_ciphers
に何を含めたらよいかわからない場合、https://mozilla.github.io/server-side-tls/ssl-config-generator/ をご利用ください。
"413 Request Entity Too Large" エラーが発生した場合、/confluence
ロケーション ブロックの client_max_body_size が Confluence の 最大添付ファイル サイズと一致していることを確認します。また、大きいサイズのページを編集する際にエラーが発生した場合、/synchrony
ロケーション ブロックの client_max_body_size を増やす必要がある場合があります。
ステップ 4: Confluence と NGINX を再起動する
- すべての変更内容を反映するには、 Confluence と NGINX を再起動します。
- 以前に設定したコンテキスト パスを含むように Confluence のベース URL を更新する - サーバー ベース URL の設定を参照してください。