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: コンテキスト パスの設定

(warning) If you want to access Confluence without a context path (www.example.com), or via a sub-domain (confluence.example.com)  skip this step.

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 ファイルで、開始点としてサンプル コネクタを使用します。  

既定のコネクタをコメント アウトします (プロキシされないアクセス用)。 

手順について

XML では、コメントは  <!-- と --> で囲まれます。コメントは、アプリケーションがファイルの必要部分のみを読み込むようにするために使用します。

<!-- と -->デフォルト コネクタの前後に追加します。次のようになります。

<!--
========================================================
DEFAULT - Direct connector with no proxy, for unproxied HTTP access to Confluence.
========================================================
-->
<!--
<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"/>
-->

HTTPS - Apache または Nginx 経由の、Confluence へのプロキシされた HTTPS アクセス」見出しの下に記載されているコネクタのコメントを外します。   

手順について

セクションのコメントを解除するには、コネクタを囲む <!-- と --> を削除します。

既定コネクタをコメントアウトし、HTTPS コネクタのコメントを外すと次のようになります。見出しは引き続きコメントアウトされます。

<!--
========================================================
DEFAULT - Direct connector with no proxy, for unproxied HTTP access to Confluence.
========================================================
-->
<!--
<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"/>
-->
...
<!--
========================================================
HTTPS - Proxying Confluence via Apache or Nginx over HTTPS
========================================================
-->
<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="<subdomain>.<domain>.com" proxyPort="443"/>

次の最終行のように、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 /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";
    }
  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;
    }
}

詳細は、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 を増やす必要がある場合があります。

Confluence モバイル アプリを使用する予定がある場合...

ユーザーに対してサイトでの Confluence モバイル アプリの使用を許可する予定があり、コンテキスト パスを設定している場合は、上記の例のように、nginx 設定に次の行を追加する必要がある場合があります。

location /server-info.action { 
     proxy_pass   http://localhost:8090/confluence/server-info.action;
}
サブドメイン経由で Confluence にアクセスしている場合...

サブドメイン経由で Confluence にアクセスしている場合、config は次のようになります。

server {
    listen confluence.example.com:80;
    server_name confluence.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 / {
        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;
    }
    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";
    }
}


ステップ 4: Confluence と NGINX を再起動する

  1. すべての変更内容を反映するには、 Confluence と NGINX を再起動します。  
  2. 以前に設定したコンテキスト パスを含むように Confluence のベース URL を更新する - サーバー ベース URL の設定を参照してください。 
最終更新日: 2022 年 1 月 31 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.