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 の