Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

17.4.6. Apache HTTP Server での mod_cluster 設定

概要

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

注記
mod_cluster は Apache HTTP Server に転送される必要がある URL を自動的に設定するため、ProxyPass ディレクティブを使用する必要はありません。

表17.6 mod_cluster の派生

派生 説明
CreateBalancers バランサーが Apache HTTP Server の VirtualHosts でどのように作成されるかを定義します。 ProxyPass /balancer://mycluster1/ のようなディレクティブを許可し ます。
0: Apache HTTP Server に定義されるすべての VirtualHosts を作成します。
1: バランサーを作成してはいけない (バランサー名の定義に最低でも 1 つの ProxyPass または ProxyMatch が必要)
2: メインサーバーのみを作成する
デフォルト: 2
値 1 を使用する場合は、必ず ProxyPass ディレクティブにバランサーを設定するようにしてください。これは、デフォルト値は空の stickysession および nofailover=Off であり、MCMP CONFIG メッセージを介して受信された値は無視されます。
UseAlias エイリアスがサーバー名に対応することを確認します。
0: エイリアスを無視する
1: エイリアスを確認する
デフォルト: 0
LBstatusRecalTime 負荷分散論理がノードの状態を再計算する間隔 (秒単位)。
デフォルト: 5 秒
WaitBeforeRemove 削除されたノードを httpd が記憶しなくなるまでの時間 (分単位)。
デフォルト: 10 秒
ProxyPassMatch/ProxyPass
ProxyPassMatch および ProxyPass は(バックエンド URL ではなく) ! を使用する場合、パスのリバースプロキシーを防ぐ mod_proxy ディレクティブです。これは、Apache HTTP Server が静的なコンテンツに対応できるようにするために使用されます。以下に例を示します。
ProxyPassMatch ^(/.*\.gif)$ !
上記の例では、Apache HTTP Server は直接 .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 になります。サーバー設定 コンテキストは、ディレクティブが VirtualHost 設定外になければならないことを示します。そうでない場合、エラーメッセージが表示され、Apache HTTP Server が開始しません。

表17.7 mod_manager の派生

派生 説明
EnableMCPMReceive VirtualHost がノードから MCPM を受信できるようにします。mod_cluster が動作するようにするため、Apache HTTP Server 設定に EnableMCPMReceive が含まれます。VirtualHost のアドバタイズを設定する場所に保存します。
MemManagerFile
設定の保存、共有メモリーまたはロックされたファイルのキーの生成に mod_manager が使用する名前のベース名。絶対パス名である必要があります。ディレクトリーは必要な場合に作成されます。
これらのファイルは NFS 共有ではなくローカルドライブに格納することが推奨されます。 コンテキスト: server config
$server_root/logs/
Maxcontext mod_cluster によってサポートされるコンテキストの最大数。
コンテキスト: server config
デフォルト: 100
Maxnode mod_cluster によってサポートされるノードの最大数。
コンテキスト: server config
デフォルト: 20
Maxhost mod_cluster によってサポートされるホスト(エイリアス)の最大数。バランサーの最大数も含まれます。
コンテキスト: server config
デフォルト: 20
Maxsessionid
mod_cluster-manager ハンドラーにアクティブなセッションの数を提供するために保存されるアクティブな sessionid の数。5 分以内に mod_cluster がセッションから情報を受信しないとセッションは非アクティブになります。
コンテキスト: server config
このフィールドはデモおよびデバッグの目的のみで使用されます。
0: 論理はアクティベートされない。
MaxMCMPMaxMessSize 他の Max ディレクティブからの MCMP メッセージの最大サイズ。 他の Max ディレクティブより計算されます。最小: 1024
ManagerBalancerName JBoss EAP インスタンスがバランサー名を提供しない場合に使用されるバランサーの名前。
mycluster
PersistSlots ファイルのノード、エイリアス、およびコンテキストを保持するよう mod_slotmem に伝えます。
コンテキスト: server config
オフ
CheckNonce mod_cluster-manager ハンドラーを使用する際に nonce のチェックを切り替えます。
on/off
デフォルト: on - Nonce をチェック
AllowDisplay mod_cluster-manager メインページの追加表示を切り替えます。
on/off
デフォルト: off - バージョンのみを表示
AllowCmd mod_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 がゼロの場合、このフィールドは存在しません。 このフィールドはデモおよびデバッグの目的でのみ使用されます。