19.3.4. httpd 上の mod_cluster 設定

概要

mod_cluster は httpd ベースのロードバランサーです。通信チャネルを使用して要求を httpd からアプリケーションサーバーノードのセットの 1 つに転送します。以下の派生を httpd 上の mod_cluster に設定できます。

注記

mod_cluser は JBossWEB に転送しなければならない URL を自動的に設定するため、ProxyPass ディレクティブを使用する必要はありません。

表19.2 mod_cluster の派生

派生説明
CreateBalancersバランサーが httpd VirtualHosts でどのように作成されるかを定義します。 ProxyPass /balancer://mycluster1/ のような派生を許可します。
0: httpd で定義された VirtualHosts をすべて作成する
1: バランサーを作成してはいけない (バランサー名の定義に最低でも 1 つの ProxyPass または ProxyMatch が必要)
2: メインサーバーのみを作成する
デフォルト: 2
1 を値として使用する場合、必ず ProxyPass ディレクティブにバランサーを設定するようにしてください。これは、デフォルト値は空の stickysession および nofailover=Off であり、MCMP CONFIG メッセージを介して受信された値は無視されるためです。
UseAliasエイリアスがサーバー名に対応することを確認します。
0: エイリアスを無視する
1: エイリアスを確認する
デフォルト: 0
LBstatusRecalTime負荷分散論理がノードの状態を再計算する間隔 (秒単位)。
デフォルト: 5 秒
WaitForRemove削除されたノードを httpd が記憶しなくなるまでの時間 (分単位)。
デフォルト: 10 秒
ProxyPassMatch/ProxyPass
ProxyPassMatch および ProxyPass は、! (バックエンド url の代わりに) の使用時にパスのリバースプロキシを防ぐ mod_proxy のディレクティブです。イメージなどの静的な情報に httpd が対応できるようにするため使用されます。例は次のとおりです。
ProxyPassMatch ^(/.*\.gif)$ !
上記の例は httpd が直接 .gif ファイルに対応できるようにします。
mod_cluster ロジックのホットスタンバイノードは、他のすべてのノードがダウンした場合にすべての要求がルーティングされる最後のノードです。これは、mod_proxy のホットスタンバイロジックと似ています。
ホットスタンバイノードを設定するには、mod_cluster サブシステムの dynamic-load-provider を、ファクターが 0 に設定されている simple-load-provider に置き換えます。
<subsystem xmlns="urn:jboss:domain:modcluster:1.2">
    <mod-cluster-config advertise-socket="modcluster" connector="ajp">
-        <dynamic-load-provider>
-            <load-metric type="busyness"/>
-        </dynamic-load-provider>
+        <simple-load-provider factor="0"/>
    </mod-cluster-config>
</subsystem>
mod_cluster-manager コンソールでは、ノードが OK および Load: 0 で表示されます。詳細については、JBoss Enterprise Application Platform『開発ガイド』の「Apache mod_cluster-manager アプリケーション」の項を参照してください。
たとえば、以下の 3 つのノードがあるとします。
  • ノード A、Load: 10
  • ノード B、Load: 10
  • ノード C、Load: 0
この場合、負荷はノード A と B の間で分散されます。両方のノードが使用できない場合は、ノード C に負荷が集中します。
mod_manager

mod_manager ディレクティブのコンテキストは、指定がある場合を除きすべて VirtualHost になります。server config の内容は、ディレクティブが VirtualHost 設定の外部になければならないことを示します。そうでない場合、エラーメッセージが表示され、httpd が開始しません。

表19.3 mod_manager の派生

派生説明
EnableMCPMReceiveVirtualHost がノードより MCPM を受信できるようにします。mod_cluster が動作するようにするため、httpd 設定に EnableMCPMReceive が含まれます。VirtualHost のアドバタイズを設定する場所に保存します。
MemManagerFile
設定の保存、共有メモリーまたはロックされたファイルのキー生成に mod_manager が使用するベース名。絶対パス名である必要があります。ディレクトリーは必要な場合に作成されます。これらのファイルは NFS 共有ではなくローカルドライブに格納することが推奨されます。
内容: サーバー設定
$server_root/logs/
Maxcontextmod_cluster によってサポートされるコンテキストの最大数。
内容: サーバー設定
デフォルト: 100
Maxnodemod_cluster によってサポートされるノードの最大数。
内容: サーバー設定
デフォルト: 20
Maxhostmod_cluster によってサポートされるホスト (エイリアス) の最大数。バランサーの最大数も含まれます。
内容: サーバー設定
デフォルト: 20
Maxsessionid
mod_cluster-manager ハンドラーにアクティブなセッションの数を提供するために保存されるアクティブ sessionid の数。5 分以内に mod_cluster がセッションより情報を受信しないとセッションは非アクティブになります。
内容: サーバー設定
このフィールドはデモおよびデバッグの目的でのみ使用されます。
0: 論理はアクティベートされない。
MaxMCMPMaxMessSize他の Max ディレクティブからの MCMP メッセージの最大サイズ。他の Max ディレクティブより計算されます。最小: 1024
ManagerBalancerNameBoss AS、JBossWeb、または Tomcat がバランサー名を提供しない場合に使用するバランサーの名前。
mycluster
PersistSlotsファイルのノード、別名、およびコンテキストを保持するよう mod_slotmem に伝えます。
内容: サーバー設定
オフ
CheckNoncemod_cluster-manager ハンドラーを使用する際に nonce のチェックを切り替えます。
on/off
デフォルト: on - Nonce をチェック
AllowDisplaymod_cluster-manager メインページの追加表示を切り替えます。
on/off
デフォルト: off - バージョンのみを表示
AllowCmdmod_cluster-manager の URL を使用するコマンドを許可します。
on/off
デフォルト: on - コマンドを許可
ReduceDisplayメインの mod_cluster-manager ページに表示される情報を減らし、ページ上により多くのノードを表示できるようにします。
on/off
デフォルト: off - 情報をすべて表示
SetHandler mod_cluster-manager
mod_cluster がクラスターから可視できるノードの情報を表示します。情報には一般的な情報が含まれ、追加でアクティブなセッションの数を調べます。
						
							<Location /mod_cluster-manager>
							SetHandler mod_cluster-manager
							Order deny,allow
							Allow from 127.0.0.1
							</Location>
on/off
デフォルト: off

注記

httpd.conf に定義された場所にアクセスする場合:
Transferred: バックエンドサーバーに送信された POST データに対応。
Connected: mod_cluster の状態ページが要求されたときに処理された要求の数に対応。
Num_sessions: mod_cluster がアクティブと報告するセッションの数に対応 (過去 5 分以内に要求があった場合)。Maxsessionid がゼロの場合、このフィールドは存在しません。このフィールドはデモおよびデバッグの目的でのみ使用されます。