SSL を使用して NGINX のバックグラウンドで Confluence を実行する

このページでは、Confluenceの リバース プロキシ としてNGNIXをセットアップする方法について説明します。 

このページに記載されている構成は、次のシナリオの結果を示しています。

  • NGINX との外部クライアント接続が SSL で保護されている。NGINX と Confluence Server の間の接続が保護されていない。
  • Confluence Server と NGINX が同じマシン上で実行されている。

このページの内容

実行中の NGINIX インスタンスが存在することを想定しています。そうでない場合は、NGINX のダウンロードやインストールについて「NGINX ドキュメント」をご確認ください。サーバー マシン上に SSL 証明書をインストールする必要があります。WebSockets (1.3 以降) をサポートする NGINX バージョンが必要です。 

チームが Confluence Server モバイル アプリを使用ことを計画している場合、信頼できる認証局が発行した証明書が必要となります。自己署名証明書や、信頼されない認証局またはプライベート認証局が発行した証明書でアプリを使用することはできません。 

アトラシアン サポートは、NGINX などのサードパーティ製ツールの設定に関するサポートは提供していません。質問がある場合は、NGINX のドキュメントを参照するか、アトラシアン コミュニティで質問するか、ソリューション パートナーからのサポートを受けてください。


ステップ 1: コンテキスト パスの設定

(warning) コンテキスト パスを使用せずに 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">

In this example we've used /confluence as the context path. Note that you can't use /resources as your context path, as this is used by Confluence, and will cause problems later on.  

Confluence を再起動し、http://example:8090/confluence にアクセス可能かどうかを確認します。

ステップ 2: Tomcat コネクタを設定する

In the same <installation-directory>conf/server.xml file, use the example connectors as a starting point.  

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

手順について

In XML a comment starts with  <!-- and ends with -->, and is used to make sure only the relevant portions of the file are read by the application.

Add <!-- and --> around the default connector. It should now look like this.

<!--
========================================================
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 アクセス」見出しの下に記載されているコネクタのコメントを外します。   

手順について

To uncomment a section, remove the <!-- and --> surrounding the connector.

既定コネクタをコメントアウトし、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"/>

Make sure you've included correct values for protocol and 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 を参照してください。

Note: do not include ssl on; if you are configuring SSL and Confluence on the same server, as in this example.

If you're not sure what to include for ssl_ciphershttps://mozilla.github.io/server-side-tls/ssl-config-generator/ is a useful resource.

If you experience 413 Request Entity Too Large errors, make sure that the client_max_body_size in the /confluence location block matches Confluence's maximum attachment size. You may also need to increase the client_max_body_size in the /synchrony location block if you experience errors when editing large pages. 

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 の設定を参照してください。 
最終更新日 2018 年 6 月 5 日

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

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