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 に関する問題のデバッグを支援することについては保証できません。この資料は情報提供のみを目的としているため、自己責任においてご使用ください。

On this page:

 

 

基本設定

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

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 を再起動し、http://example:8090/confluenceにアクセス可能か確認してください。

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

Next, set the URL for redirection. In the same <installation-directory>conf/server.xml file, locate this code segment:

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

最後の行に示すように、proxyNameproxyPort および スキームを追加します。

<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" 
                proxyName="www.example.com" proxyPort="80" scheme="http"/>

SSL を使用している場合、スキームは "https" になります。 

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 にアクセスする場合はこの例を使用します。

(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://localhost:8091/synchrony
<Location /synchrony>
    Require all granted
    RewriteEngine on
    RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
    RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
    RewriteRule .* ws://localhost: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 にアクセスする場合はこの例を使用します。

(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 以降が必要です。 

Example 3: Configuration using a reverse proxy and Confluence's internal Synchrony proxy

If you choose to use a reverse proxy and Confluence's internal Synchrony proxy together (for example, you do not want to open port 8091 for Synchrony) you will need to substitute the Synchrony ProxyPass directive and Location block in the examples above with the following. 

ProxyPass /synchrony-proxy http://<domain>:8090/synchrony-proxy

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

Confluence の内部 Synchrony プロキシ手動で有効化する必要があります (例 1 または 2 ではこれは不要です)。 

To do this, set the synchrony.proxy.enabled system property to true. See Configuring System Properties for more information on how to set this system property. 

共同編集の管理」の図でこのアプローチを説明する図を確認できます。 

4 Apache の再起動

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

sudo apachectl graceful

5HTTP 圧縮を無効にする

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

6Confluence の Base URL の変更

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

SSL の追加

詳細情報

Last modified on Mar 9, 2017

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

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