24.8. Apache mod_proxy HTTP コネクター
Apache mod_proxy は、AJP、HTTP、および HTTPS プロトコルを介して接続をサポートする HTTP コネクターです。 mod_proxy は負荷分散された設定と負荷分散されていない設定が可能で、スティッキーセッションをサポートします。
mod_proxy モジュールを使用するには、使用するプロトコルに応じて JBoss EAP の undertow
サブシステムに HTTP、HTTPS または AJP リスナーを設定する必要があります。
mod_cluster は mod_proxy よりも高度なロードバランサーで、推奨される HTTP コネクターです。mod_cluster は mod_proxy のすべての機能と、それ以外の追加機能を提供します。JBoss EAP の mod_cluster HTTP コネクターとは違い、Apache mod_proxy HTTP コネクターはサーバーまたはサーバーグループのデプロイメントの状態を認識せず、ワークの送信先に順応できません。
詳細は Apache mod_proxy ドキュメント を参照してください。
24.8.1. Apache HTTP Server での mod_proxy の設定
JBoss Core Services Apache HTTP Server をインストールする場合や JBoss Web Server を使用する場合、mod_proxy モジュールはすでに含まれており、デフォルトでロードされます。
JBoss Web Server バージョン 3.1.0 より、Apache HTTP Server は配布されないようになりました。
基本の ロードバランシング または 非ロードバランシング プロキシーを設定するには、以下のセクションを参照してください。この手順では、Apache HTTP Server の httpd/
ディレクトリーがカレントディレクトリーであることを前提としていますが、このディレクトリーはプラットフォームによって異なります。ご使用のプラットフォームに対応するインストール手順は、JBoss Core Services の Apache HTTP Server Installation Guide を参照してください。また、この手順は JBoss EAP の undertow
サブシステムに必要な HTTP リスナーが設定されていることを前提としています。
Red Hat のお客様は Red Hat カスタマーポータルにある Load Balancer Configuration Tool を使用して mod_proxy やその他のコネクターに最適な設定テンプレートを迅速に生成することもできます。このツールを使用するにはログインする必要があります。
非ロードバランシングプロキシーの追加
以下の設定を、他の <VirtualHost>
ディレクティブの直下にある conf/httpd.conf
ファイルに追加します。値を設定に適切な値に置き換えます。
<VirtualHost *:80>
# Your domain name
ServerName YOUR_DOMAIN_NAME
ProxyPreserveHost On
# The IP and port of JBoss
# These represent the default values, if your httpd is on the same host
# as your JBoss managed domain or server
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
# The location of the HTML files, and access control information
DocumentRoot /var/www
<Directory /var/www>
Options -Indexes
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
ロードバランシングプロキシーの追加
デフォルトの Apache HTTP Server は mod_cluster との互換性がないため、mod_proxy_balancer.so
モジュールが無効になっています。この作業を行うには、このモジュールをロードし、mod_cluster を無効にする必要があります。
mod_proxy をロードバランサーとして使用し、ワークを複数の JBoss EAP インスタンスに送信するには、以下の設定を conf/httpd.conf
ファイルに追加する必要があります。IP アドレスの例は以下のようになります。ご使用の環境に適切な値に置き換えてください。
<Proxy balancer://mycluster>
Order deny,allow
Allow from all
# Add each JBoss Enterprise Application Server by IP address and port.
# If the route values are unique like this, one node will not fail over to the other.
BalancerMember http://192.168.1.1:8080 route=node1
BalancerMember http://192.168.1.2:8180 route=node2
</Proxy>
<VirtualHost *:80>
# Your domain name
ServerName YOUR_DOMAIN_NAME
ProxyPreserveHost On
ProxyPass / balancer://mycluster/
# The location of the HTML files, and access control information DocumentRoot /var/www
<Directory /var/www>
Options -Indexes
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
上記の例はすべて HTTP プロトコルを使用して通信します。適切な mod_proxy モジュールをロードすれば AJP または HTTPS プロトコルを使用することもできます。詳細は Apache mod_proxy ドキュメント を参照してください。
スティッキーセッションの有効化
スティッキーセッション を使用すると、クライアントリクエストが特定の JBoss EAP ワーカーに送信された場合に、ワーカーが利用不可能にならない限り、後続のリクエストがすべて同じワーカーに送信されます。これは、ほとんどの場合で推奨される動作です。
mod_proxy のスティッキーセッションを有効にするには、stickysession
パラメーターを ProxyPass
ステートメントに追加します。
ProxyPass / balancer://mycluster stickysession=JSESSIONID
追加のパラメーターを lbmethod
や nofailover
などの ProxyPass
ステートメントに指定できます。使用可能なパラメーターの詳細は、Apache mod_proxy ドキュメント を参照してください。