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 の
- ResponseStatusCodeOnNoContext
ProxyPassまたはProxyPassMatchディレクティブに一致するコンテキストがない場合に、サーバーがクライアントに送信する応答ステータスコードを定義します。デフォルト値は
404です。これは、サーバーがデフォルトでNot Foundエラー応答を送信することを意味します。JBCS 2.4.51 以前では、
ProxyPassまたはProxyPassMatchディレクティブに一致するコンテキストがない場合、サーバーはデフォルトで503 Service Unavailable応答を送信しました。以前のリリースで使用可能だったデフォルトの動作を維持する場合は、代わりにResponseStatusCodeOnNoContextディレクティブを503に設定します。注記標準の HTTP 応答コード以外の値を指定した場合、サーバーアクセスログには指定された値が表示されますが、サーバーはクライアントに
500 Internal Server Error応答を送信します。