7.2.2 mod_proxy_ajp の使用

この設定は、Apache mod_proxy_ajp プラグインを使用して、AJP プロトコルでの JBoss クラスターのロードバランスを取ります。このモジュールは、mod_proxy のサービスを必要とします。 したがって、AJP プロトコルを処理できるようにするために、mod_proxy と mod_proxy_ajp がサーバーに存在していなければなりません。

このモジュールは、AJP プロトコルを使用してバックエンドアプリケーションサーバーへの逆プロキシのために使われます。使い方は HTTP 逆プロキシと同じですが、これは ajp://プレフィクスを使用します。

APACHE_HOME/conf/httpd.conf ファイル内で次のモジュール設定をコメント解除します。

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

次の設定を APACHE_HOME/conf/httpd.conf ファイルに追加します。

<VirtualHost *:80> 
ServerName lb.xyz.com 
ServerAlias lb.xyz.com 
ProxyRequests Off 
ProxyPreserveHost On 
<Proxy balancer://cluster> 
BalancerMember ajp://abc.com:8009 route=node1 
BalancerMember ajp://xyz.com:8009 route=node2 
ProxySet lbmethod=byrequests 
</Proxy> 
ProxyPass / balancer://cluster/ stickysession=JSESSIONID|jsessionid 
</VirtualHost>

通常、ProxyPassReverse ディレクティブは不要です。AJP リクエストはプロキシに与えられたオリジナルのホストヘッダーを含み、アプリケーションサーバーはこのホストに相対的な自己参照ヘッダーを生成すると見なせるので、書き換えは不要です。

サーバー側の設定 :

  1. クラスターの各ノードごとに、[appserver root]/server/<profile_name>/deploy/jbossweb.sar にある server.xml ファイルを開き編集します。

  2. server.xml ファイルで Engine name 要素を検索し、jvmRoute 属性を追加します。例えば、node1 というノードでは、エレメントを次のように編集します : <Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">

  3. 編集した server.xml ファイルを保存します。

    注意: 各クラスターごとに、jvmRoute のノード値は一意でなければならず、それぞれの JBoss ーに接続するワーカーのルートの値と一致していなければなりません (httpd.conf での MalancerMember 設定を参照)。