3.3. mod_proxy_cluster を使用する場合の Apache HTTP Server 負荷分散設定
				Apache HTTP Server 2.1 以降のバージョンでは、mod_proxy_cluster はデフォルトで Apache HTTP Server 用に正しく設定されています。カスタム設定の設定の詳細は、基本プロキシーサーバー の設定を参照してください。
			
mod_proxy_cluster のサンプル設定ファイル
				mod_proxy_cluster を Red Hat JBoss Core Services (JBCS) 経由でインストールしたか、Red Hat Enterprise Linux (RHEL) Application Streams を使用してインストールしたかに応じて、次のガイドラインを考慮してください。
			
- 
						JBCS の場合、
JBCS_HOME/httpd/conf.d/ディレクトリーにmod_proxy_clusterのサンプル設定ファイルがあります。 - 
						RHEL の場合、
/etc/httpd/conf.d/ディレクトリーにmod_proxy_clusterのサンプル設定ファイルがあります。 
				mod_proxy_cluster のサンプル設定ファイルの名前は mod_proxy_cluster.conf.sample です。独自の設定ファイルを作成する代わりにこれらのサンプルを使用する場合は、.sample 拡張子を削除し、必要に応じてファイルの内容を変更します。
			
					また、Red Hat Customer Portal の Load Balancer Configuration ツールを使用して、mod_proxy_cluster および Tomcat ワーカーノードに最適な設定テンプレートをすばやく生成することもできます。Apache HTTP Server 2.4.62 のロードバランサー設定ツールを使用する場合は、Apache バージョンに 2.4.x を、バックエンド設定に Tomcat/JWS を選択してください。
				
mod_proxy_cluster の使用に関するガイドライン
				mod_proxy_cluster コネクターを使用する場合は、次のガイドラインを考慮してください。
			
- 
						
mod_proxy_clusterコネクターを使用する場合は、mod_proxyモジュールを有効にして、mod_proxy_balancerモジュールを無効にする必要があります。 - 
						
mod_proxy_clusterで Apache JServ Protocol (AJP) を使用する場合は、proxy_ajp_moduleを有効にする必要があります。 - 
						AJPSecret 
your_secretを使用して、AJP バックエンドのシークレットを指定します。your_secretがバックエンドで設定された値に対応していない場合には、このバックエンドでは、プロキシー経由で送信される全要求に対して503エラー応答を送信します。 
					Red Hat JBoss Core Services 2.4.62 では、バックエンドの websockets サーバーに対する接続がアップグレードされていない場合に、その接続のトンネリングはサポートされません。つまり、mod_proxy_wstunnel モジュールの ProxyPass ディレクティブを設定するときに、アップグレードパラメーターが NONE に設定されていないことを確認する必要があります。mod_proxy_wstunnel の詳細は、Apache のドキュメント を参照してください。
				
3.3.1. 基本のプロキシーサーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
					Web クライアントとバックエンド Web サーバーの間で要求と応答を転送するプロキシーサーバーとして機能するように Apache HTTP Server を設定できます。バックエンドのワーカーノードから接続要求と応答を受信するには、プロキシーサーバーリスナーを設定する必要があります。mod_proxy_cluster を使用する負荷分散プロキシーサーバーを設定する場合は、管理チャネル用の仮想ホストも設定する必要があります。
				
前提条件
- Apache HTTP Server がインストール されている。
 - 
							Application Streams を使用して Apache HTTP Server の RHEL ディストリビューションをインストールした場合は、
mod_proxy_clusterを手動でインストール している。 - プロキシーサーバーリスナーに指定するポートは、受信 TCP 接続用に開いている必要があります。
 
手順
Apache HTTP Server 設定ディレクトリーに移動します。
- 
									JBCS Apache HTTP Server を使用している場合は、
JBCS_HOME/httpd/conf.dディレクトリーに移動します。 - 
									RHEL Apache HTTP Server を使用している場合は、
/etc/httpd/conf.dディレクトリーに移動します。 
- 
									JBCS Apache HTTP Server を使用している場合は、
 - 
							
mod_proxy_cluster.confファイルを開きます。 プロキシーサーバーの
Listenディレクティブを作成するには、mod_proxy_cluster.confファイルに次の行を入力します。Listen IP_ADDRESS:PORT_NUMBER
Listen IP_ADDRESS:PORT_NUMBERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記上記の例では、プロキシーサーバーがワーカーノードと通信するために使うサーバーネットワークインターフェイスのアドレスに
IP_ADDRESSをプロキシーサーバーがワーカーノードと通信するのに使うサーバーネットワークインターフェイスのアドレスに、をプロキシーサーバーがリッスンするポートに置き換えてください。PORT_NUMBERをプロキシーサーバーがリッスンするポートに置き換えます。着信 TCP 接続用にポートが開いていることを確認します。
仮想ホストを作成するには、
mod_proxy_cluster.confファイルに次の詳細を入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要仮想ホストで
EnableMCMPReceiveディレクティブを指定する場合、Apache HTTP Server では、仮想ホスト定義でDirectory要素ではなく、常にLocation要素を使用する必要があります。JBCS 2.4.62 以降、Apache HTTP Server は、同じ仮想ホスト内でのDirectory要素とEnableMCMPReceiveディレクティブの使用をサポートしていません。同じ仮想ホスト内でDirectory要素とEnableMCMPReceiveディレクティブを指定すると、Apache HTTP Server は起動に失敗し、代わりにLocation要素を使用する必要があることを示すエラーがログに記録されます。起動エラーは、以前のリリースと互換性のない重大な変更として、JBCS 2.4.62 で導入されました。注記前の例で、
IP_ADDRESSとPORT_NUMBERを、Listenディレクティブに指定したサーバーネットワークインターフェイスのアドレスとポート番号に置き換えます。このアドレスとポートの組み合わせは、
mod_proxy_cluster管理メッセージにのみ使用されます。このアドレスとポートの組み合わせは、一般的なトラフィックには使用されません。
Apache HTTP Server サービスの開始に関する詳細は、Red Hat JBoss Core Services Apache HTTP Server インストールガイド を参照してください。
3.3.1.1. サーバー広告の無効化 リンクのコピーリンクがクリップボードにコピーされました!
						プロキシーサーバーは、UDP マルチキャストを使用して自身をアドバタイズします。AdvertiseFrequency ディレクティブは、デフォルトでサーバー通知メッセージを 10 秒ごとに送信するようにサーバーに指示します。サーバー通知メッセージには、VirtualHost 定義で指定した IP_ADDRESS と PORT_NUMBER が含まれています。サーバーアドバタイズに応答するように設定されたワーカーノードは、この情報を使用してプロキシーサーバーに登録されます。ワーカーノードがプロキシーサーバーに登録されないようにする場合は、オプションでサーバーアドバタイズメントを無効にすることができます。
					
プロキシーサーバーとワーカーノードの間で UDP マルチキャストが使用可能な場合、サーバーアドバタイズメントは、プロキシーサーバーでさらに設定する必要なく、ワーカーノードを追加します。サーバーアドバタイズには、ワーカーノードでの最小限の設定のみが必要です。
前提条件
手順
Apache HTTP Server 設定ディレクトリーに移動します。
- 
										JBCS Apache HTTP Server を使用している場合は、
JBCS_HOME/httpd/conf.dディレクトリーに移動します。 - 
										RHEL Apache HTTP Server を使用している場合は、
/etc/httpd/conf.dディレクトリーに移動します。 
- 
										JBCS Apache HTTP Server を使用している場合は、
 - 
								
mod_proxy_cluster.confファイルを開きます。 次のディレクティブを
VirtualHost定義に追加します。ServerAdvertise Off
ServerAdvertise OffCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記サーバーのアドバタイズが無効になっている場合や、UDP マルチキャストがプロキシーサーバーとワーカーノードの間のネットワークで利用できない場合、ワーカーノードをプロキシーサーバーの静的リストで設定します。いずれの場合も、ワーカーノードのリストを使用してプロキシーサーバーを設定する必要はありません。
3.3.1.2. ワーカーノードの詳細のログ記録 リンクのコピーリンクがクリップボードにコピーされました!
						mod_proxy_cluster を使用する負荷分散プロキシーサーバーを設定する場合、必要に応じて、要求を処理する各ワーカーノードの詳細をログに記録するように Apache HTTP Server を設定できます。ワーカーノードの詳細をログに記録すると、ロードバランサーのトラブルシューティングが必要な場合に役立ちます。
					
前提条件
手順
Apache HTTP Server 設定ディレクトリーに移動します。
- 
										JBCS Apache HTTP Server を使用している場合は、
JBCS_HOME/httpd/conf.dディレクトリーに移動します。 - 
										RHEL Apache HTTP Server を使用している場合は、
/etc/httpd/conf.dディレクトリーに移動します。 
- 
										JBCS Apache HTTP Server を使用している場合は、
 - 
								
mod_proxy_cluster.confファイルを開きます。 次の詳細を Apache HTTP Server の
LogFormatディレクティブに追加します。%{BALANCER_NAME}e :: The name of the balancer that served the request. %{BALANCER_WORKER_NAME}e :: The name of the worker node that served the request.%{BALANCER_NAME}e :: The name of the balancer that served the request. %{BALANCER_WORKER_NAME}e :: The name of the worker node that served the request.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
3.3.2. mod_proxy_cluster での JBoss Web Server ワーカーノードの設定 リンクのコピーリンクがクリップボードにコピーされました!
					mod_proxy_cluster を使用すると、バックエンドワーカーノードを非クラスターモードのみで動作する JBoss Web Server Tomcat サービスとして設定できます。この状況で mod_proxy_cluster が負荷分散係数の計算で同時に使用できる負荷メトリクスは 1 つだけです。
				
						JBoss Web Server ワーカーノードは、mod_proxy_cluster 機能のサブセットのみをサポートします。完全な mod_proxy_cluster 機能は JBoss EAP で利用できます。
					
前提条件
手順
JBoss Web Server にリスナーを追加するには、
JWS_HOME/tomcat <VERSION>/conf/server.xmlファイルで、他のListener要素の下に次のListener要素を追加します。<Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="true" stickySession="true" stickySessionForce="false" stickySessionRemove="true" />
<Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="true" stickySession="true" stickySessionForce="false" stickySessionRemove="true" />Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワーカーノードに一意のアイデンティティーを与えるには、
JWS_HOME/tomcat <VERSION>/conf/server.xmlファイルで、jvmRoute属性と値をEngine要素に追加します。<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker01">
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker01">Copy to Clipboard Copied! Toggle word wrap Toggle overflow STATUS MCMPメッセージの頻度を設定するには、org.jboss.modcluster.container.catalina.status-frequencyJava システムプロパティーを変更します。以下に例を示します。
-Dorg.jboss.modcluster.container.catalina.status-frequency=6
-Dorg.jboss.modcluster.container.catalina.status-frequency=6Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記JBoss Web Server は、現在の負荷ステータスを含むステータスメッセージを Apache HTTP Server バランサーに定期的に送信します。これらのメッセージのデフォルトの頻度は 10 秒です。数百のワーカーノードがある場合、
STATUS MCMPメッセージによって Apache HTTP Server ネットワークのトラフィック輻輳が増える可能性があります。MCMPメッセージ頻度を設定するには、org.jboss.modcluster.container.catalina.status-frequencyJava システムプロパティーを変更します。デフォルトでは、プロパティーは秒単位で指定された値を 10 倍して受け入れます。たとえば、プロパティーを1に設定すると 10 秒になります。前の例では、プロパティーは6に設定されており、これは 60 秒を意味します。オプション: プロキシーサーバーのアドバタイズ用にファイアウォールを設定するには、次のいずれかの手順を実行して、ワーカーノードのファイアウォールで UDP 接続用のポート
23364を開きます。RHEL の場合:
firewall-cmd --permanent --zone=public --add-port=23364/udp
firewall-cmd --permanent --zone=public --add-port=23364/udpCopy to Clipboard Copied! Toggle word wrap Toggle overflow PowerShell を使用する Windows Server の場合:
Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "NetSh Advfirewall firewall add rule name="UDP Port 23364" dir=in action=allow protocol=UDP localport=23364"' Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "NetSh Advfirewall firewall add rule name="UDP Port 23364" dir=out action=allow protocol=UDP localport=23364"'
Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "NetSh Advfirewall firewall add rule name="UDP Port 23364" dir=in action=allow protocol=UDP localport=23364"' Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "NetSh Advfirewall firewall add rule name="UDP Port 23364" dir=out action=allow protocol=UDP localport=23364"'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記プロキシーサーバーが
mod_proxy_clusterを使用する場合、プロキシーサーバーは UDP マルチキャストを使用して自身をアドバタイズできます。ほとんどのオペレーティングシステムのファイアウォールは、デフォルトでサーバーアドバタイズメント機能をブロックします。サーバーアドバタイズメントを有効にしてこれらのマルチキャストメッセージを受信するには、前述の例に示すように、ワーカーノードのファイアウォールで UDP 接続用にポート23364を開くことができます。
3.3.3. プロキシーサーバーの静的リストを操作するためのワーカーノードの設定 リンクのコピーリンクがクリップボードにコピーされました!
サーバーアドバタイズメントにより、ワーカーノードがプロキシーサーバーを動的に検出して登録できるようになります。UDP マルチキャストが利用できない場合、またはサーバーアドバタイズメントが無効になっている場合は、プロキシーサーバーのアドレスとポートの静的リストを使用して JBoss Web Server ワーカーノードを設定する必要があります。
前提条件
手順
- 
							
JWS_HOME/tomcat<VERSION>/conf/server.xmlファイルを開きます。 mod_proxy_clusterリスナーを定義して動的プロキシー検出を無効にするには、ModClusterListenerのListener要素を追加または変更します。以下に例を示します。
<Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="false" stickySession="true" stickySessionForce="false" stickySessionRemove="true"/>
<Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="false" stickySession="true" stickySessionForce="false" stickySessionRemove="true"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記advertiseプロパティーをfalseに設定していることを確認してください。静的プロキシーサーバーリストを作成するには、プロキシーのコンマ区切りリストを、
IP_ADDRESS:PORT,IP_ADDRESS:PORTの形式で追加して、proxyListプロパティーを更新します。以下に例を示します。
<Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="false" stickySession="true" stickySessionForce="false" stickySessionRemove="true" proxyList="10.33.144.3:6666,10.33.144.1:6666"/>
<Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="false" stickySession="true" stickySessionForce="false" stickySessionRemove="true" proxyList="10.33.144.3:6666,10.33.144.1:6666"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow