C.2. Mod_proxy_cluster.so モジュールとディレクティブ
プロキシーロードバランサーモジュール mod_proxy_cluster.so
は、クラスターノードへの要求のルーティングを処理します。プロキシーバランサーは、クラスターのアプリケーションの場所、各クラスターノードの現在の状態、およびセッション ID (要求が確立されたセッションの一部である場合) に基づいて要求を転送するために適切なノードを選択します。
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
mod_proxy_cluster.so
の設定可能なディレクティブ
<VirtualHost>
要素に以下のディレクティブを設定して、負荷分散の動作を変更することもできます。
- CreateBalancers
ロードバランサーが Apache HTTP Server の仮想ホストでどのように作成されるかを定義します。
CreateBalancers
では、以下の値が使用できます。-
0
: Apache HTTP Server で定義されたすべての仮想ホストにロードバランサーを作成します。ProxyPass
ディレクティブでロードバランサーを設定するのを忘れないようにしてください。 -
1
: バランサーを作成しません。この値を使用する場合は、ProxyPass
またはProxyPassMatch
にロードバランサー名を定義する必要もあります。 -
2
: メインサーバーのみ作成します。これはCreateBalancers
のデフォルト値です。
-
- UseAlias
定義された
Alias
がServerName
に対応するかどうかを定義します。UseAlias
については、以下の値有効です。-
0
: ワーカーノードのエイリアス情報を無視します。これはUseAlias
のデフォルト値です。 -
1
: 定義されたエイリアスがワーカーノードのサーバー名に対応していることを確認します。
-
- LBstatusRecalTime
-
ワーカーノードのステータスを計算するプロキシーの間隔 (秒単位) を定義します。デフォルトの間隔は
5
秒です。 - ProxyPassMatch; ProxyPass
ProxyPass
は、リモートサーバーをローカルサーバーの名前空間にマッピングします。ローカルサーバーにhttp://local.com/
のアドレスがある場合、ProxyPass
ディレクティブはhttp://local.com/requested/file1
のローカルリクエストをhttp://worker.local.com/file1
のプロキシーリクエストに変換します。ProxyPass /requested/ http://worker.local.com/
ProxyPassMatch
は正規表現を使用して、プロキシーされた URL が適用されるローカルパスを照合します。いずれかのディレクティブで、
!
は指定したパスがローカルであることを示します。そのパスのリクエストはリモートサーバーにルーティングしないでください。たとえば、以下のディレクティブはgif
ファイルをローカルで提供するように指定します。ProxyPassMatch ^(/.*\.gif)$ !
- UseNocanon
元の URL パスを変更せずにバックエンドに転送するかどうかを定義します。
デフォルト値は
Off
です。UseNocanon
ディレクティブがOff
に設定されている場合、プロキシーは変更された URL をバックエンドに転送できます。ただし、クライアントが要求した元の URL パスをバックエンドアプリケーションが想定している場合は、変更された URL パスが原因で予期しない問題が発生する可能性があります。UseNocanon
ディレクティブをOn
に設定すると、プロキシーは元の URL パスを変更せずにバックエンドに転送できます。この場合、プロキシーの動作は、mod_proxy_cluster.conf
ファイルで要求された URL のコンテキストとProxyPass
ディレクティブも定義しているかどうかによって異なります。コンテキストは、仮想ホスト定義 とも呼ばれます。UseNocanon
ディレクティブをOn
に設定する場合は、次のガイドラインを考慮してください。-
要求された URL のコンテキストは定義したが、その URL の
ProxyPass
ディレクティブは定義していない場合、プロキシーはUseNocanon
ディレクティブを使用します。 -
要求された URL に対してコンテキストと
ProxyPass
ディレクティブの両方を定義し、ProxyPass
ディレクティブにnocanon
フラグが含まれている場合、プロキシーはnocanon
フラグを使用し、UseNocanon
ディレクティブを無視します。 -
要求された URL に対してコンテキストと
ProxyPass
ディレクティブの両方を定義し、ProxyPass
ディレクティブでnocanon
フラグが除外されている場合、プロキシーはUseNocanon
ディレクティブを無視します。
注記要求された URL のコンテキストを定義していない場合、
mod_proxy_cluster
は404
エラーを返します。-
要求された URL のコンテキストは定義したが、その URL の