Apache で mod_proxy を使用する

アトラシアンのアプリケーションはリバースプロキシの使用を許可します。しかし、アトラシアンのサポートはその設定に対してサポートの提供は行いません。つまり、アトラシアン はリバースプロキシに対するあらゆるサポートの提供を保証できません

設定に関してサポートが必要であれば、Atlassian Answers に質問をあげてください。

このページは、標準 Tomcat コンテナで実行する Confluence のプロキシリクエストに Apache HTTP Server 2.4 を使用するための考えられる方法の 1 つを説明します。同じ目的で NGINX を使用する方法を説明する追加ドキュメントもあります。

次のような場合、この構成を使用できます。

  • 既存の Apache ベースの web サイトがあり、Confluence を追加する場合 ( http://www.example.com/confluence など)。
  • 2 つ以上の Java アプリケーションがあり、それぞれが異なるポート上の独自のアプリケーション サーバーで実行し (例: http://example:8090/confluence および http://example:8080/Jira)、通常の HTTP ポート (80) (例: http://www.example.com/confluence および http://www.example.com/jira) で両方使用できます。これによって、各アプリケーションを個別に、再起動、管理、およびデバックすることができます。

注意:このページでは Confluence 自体ではなく、Apache の設定について説明しています。アトラシアンはこの設定による Confluence をサポートしますが、Apache に関する問題のデバッグを支援することについては保証できません。この資料は情報提供のみを目的としているため、自己責任で使用されるようご注意ください。

このページの内容:

基本設定

これらの例では、以下を使用します。

http://www.example.com/confluence - 希望の URL

http://example:8090 - 現在 Confluence がインストールされているホスト名とポート

http://example:8091 - ホスト名とポート Synchrony (共同編集を駆動するサービス)。既定値の設定:

/confluence - Confluence の希望のコンテキスト パス(ホスト名とポートの後の部分)

/synchrony - Synchrony のコンテキスト パス、共同編集を可能にするプロセス。

これらの URL を独自の URL に置き換える必要があります。

1 コンテキストパスを設定する

(warning) コンテキスト パスを使用せずに Confluence にアクセスしたい場合 ( www.example.com,  など)このステップをスキップします。

Tomcat で Confluence のアプリケーション パス (ホスト名とポートに続く部分) を設定します。この例では、コンテキスト パスは /confluence になります。 

<installation-directory>conf/server.xml を編集し、"Context" 定義を見つけます。

<Context path="" docBase="../confluence" debug="0" reloadable="true">

次のように変更します。

<Context path="/confluence" docBase="../confluence" debug="0" reloadable="true">

この例では、コンテキスト パスとして /confluence を使用しています。/resources は Confluence によって使用されています。問題を防ぐため、コンテキスト パスとして使用することはできません。  

Confluence を再起動し、http://example:8090/confluenceにアクセス可能か確認してください。

2 リダイレクションのURLの設定

次に、リダイレクション用の URL を設定します。同じ <installation-directory>conf/server.xml ファイルで、開始点としてサンプル コネクタを使用します。  

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

手順について

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

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

<!--
========================================================
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"/>
-->

"HTTP - Proxying Confluence via Apache or Nginx over HTTP" ヘッダーの下に記載されているコネクタのコメントを解除します。   

手順について

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

デフォルト コネクタをコメント アウトし、HTTP コネクタのコメントを外すと次のようになります。ヘッダーは引き続きコメント アウトされます。

<!--
========================================================
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"/>
-->
<!--
========================================================
HTTP - Proxying Confluence via Apache or Nginx over HTTP
========================================================
-->
<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="http" proxyName="<subdomain>.<domain>.com" proxyPort="80"/>

次の最後の行のように、ご利用の 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="http" proxyName="www.example.com" proxyPort="80"/>

HTTPS を有効化する予定の場合、"HTTP - Proxying Confluence via Apache or Nginx over HTTP" 配下のコネクタを使用します。 


3 mod_proxy の設定

以下のいずれかの例を使用して、Apache http.conf ファイルを編集し、アプリケーション サーバーへのリクエストをプロキシするようにします。

(warning) まだ有効化していない場合は、次の必要な Apache モジュールを有効化する必要があります。

  • mod_proxy
  • mod_proxy_http
  • proxy_wstunnel 
  • mod_rewrite

(proxy_wstunnel と mod_rewrite は Confluence 6.0 の新しい要件です)

http.conf ファイルの形式やモジュールの場所はオペレーティング システムによって異なる場合があります。Windows ユーザーの場合、モジュール ファイルへの絶対パスを指定することを推奨します。

例 1: コンテキストパスを使用した設定

ステップ 1 でコンテキストパスを設定し、この http://www.example.com/confluence などのコンテキスト パスを使用して Confluence にアクセスする場合はこの例を使用します。  

この例では、ユーザーは WebSockets 経由で直接、共同編集に必要な Synchrony に接続します。 

(warning) 構成での指令の順序は重要です。 

Apache HTTP server 2.4
# Put this after the other LoadModule directives
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module /usr/lib/apache2/modules/mod_proxy_wstunnel.so
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

# Put this in the main section of your configuration (or virtual host, if using Apache virtual hosts)
ProxyRequests Off
ProxyPreserveHost On

<Proxy *>
    Require all granted
</Proxy>

ProxyPass /synchrony http://<domain>:8091/synchrony
<Location /synchrony>
    Require all granted
    RewriteEngine on
    RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
    RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
    RewriteRule .* ws://<domain>:8091%{REQUEST_URI} [P]
</Location>
 
ProxyPass /confluence http://<domain>:8090/confluence
ProxyPassReverse /confluence http://<domain>:8090/confluence

<Location /confluence>
    Require all granted
</Location>

注:: Apache HTTP Server 2.2 と Confluence 6.0 以降を併用することはできません。SSL の使用を予定している場合は、バージョン 2.4.10 以降が必要となります。

例 2: コンテキスト パスなしの構成 

ステップ 1 をスキップし、この http://www.example.com などのコンテキストパスを使用せず Confluence にアクセスする場合はこの例を使用します。

以前の例のように、ユーザーは WebSockets 経由で直接、共同編集に必要な Synchrony に接続します。 

(warning) 構成での指令の順序は重要です。 

Apache HTTP server 2.4
# Put this after the other LoadModule directives
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module /usr/lib/apache2/modules/mod_proxy_wstunnel.so
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

# Put this in the main section of your configuration (or virtual host, if using Apache virtual hosts)
 
  ProxyRequests Off
  ProxyPreserveHost On
    
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !^/synchrony
  RewriteRule ^/(.*) http://<domain>:8090/$1 [P]

  <Proxy *>
      Require all granted
  </Proxy>

  ProxyPass /synchrony http://<domain>:8091/synchrony

  <Location /synchrony>
      Require all granted
      RewriteEngine on
      RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
      RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
      RewriteRule .* ws://<domain>:8091%{REQUEST_URI} [P]
  </Location>

  ProxyPass / http://<domain>:8090
  ProxyPassReverse / http://<domain>:8090
   
  <Location />
      Require all granted
  </Location>

注:: Apache HTTP Server 2.2 と Confluence 6.0 以降を併用することはできません。SSL の使用を予定している場合は、バージョン 2.4.10 以降が必要です。 

4 Apache の再起動

これは新しい設定を有効するのに必要です。 Apache を再起動するには、次のコマンドを実行します。

sudo apachectl graceful

5HTTP 圧縮を無効にする

プロキシと Tomcat の両方で圧縮を実行すると、Jira などのアトラシアンの他のアプリケーションをと統合する際に問題が発生することがあります。「Confluence 内で HTTPレスポンスを圧縮する」を参照して、HTTP 圧縮を無効にしてください。

6Confluence の Base URL の変更

最後の段階では、Base URL に、プロキシ内で使用するアドレスを設定します。この例では、http://www.example.com/confluence です

SSL の追加

HTTPS を有効化する予定がある場合、「SSL と Apache を使用してアトラシアン アプリケーションを保護する」を参照して、HTTPS サンプル コネクタを選択していることを確認します。 

詳細情報

最終更新日 2019 年 3 月 7 日

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

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