19.7.2. Apache HTTP Server への mod_proxy HTTP コネクターのインストール
概要
mod_proxy
は、Apache により提供される負荷分散モジュールです。このタスクは、基本的な設定を提供します。高度な設定または詳細については、Apache の mod_proxy
ドキュメンテーション (https://httpd.apache.org/docs/2.2/mod/mod_proxy.html) を参照してください。JBoss EAP 6 の観点からの mod_proxy
の詳細については、「Apache mod_proxy HTTP コネクター 」 および 「HTTP コネクターの概要」 を参照してください。
前提条件
- JBoss Enterprise Web Server の httpd または Apache HTTP Server のどちらかをインストールする必要があります。スタンドアロン Apache HTTP Server は、Red Hat カスタマーポータルの JBoss EAP 6 のダウンロードエリアから個別にダウンロードできます。この Apache HTTP Server を使用したい場合は 「JBoss EAP 6 に含まれる Apache HTTP Server のインストール (Zip)」 の詳細情報を参照してください。
mod_proxy
モジュールをインストールする必要があります。Apache HTTP Server は、通常、すでに同梱されているmod_proxy
モジュールで提供されます (Red Hat Enterprise Linux と JBoss Enterprise Web Server に含まれる Apache HTTP Server の場合)。- Apache HTTP Server の設定を変更するには、
root
または管理者権限が必要です。 - ここで使用する例では JBoss EAP 6 が HTTP または HTTPS Web コネクターで設定されていることを仮定しています。Web サブシステムの設定については 「Web サブシステムの設定」 を参照してください。
httpd で
mod_proxy
モジュールを有効にします。HTTPD_HOME/conf/httpd.conf
ファイルで次の行を探します。これらの行が存在しない場合は、行を最下部に追加します。これらの行が存在し、行がコメント (#) 文字始まる場合は、この文字を削除します。編集後、ファイルを保存します。通常、モジュールはすでに存在し、有効になっています。LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so # Uncomment these to proxy FTP or HTTPS #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #LoadModule proxy_connect_module modules/mod_proxy_connect.so
非負荷分散プロキシーを追加します。
以下の設定を、他の<VirtualHost>
ディレクトリーの直下にあるHTTPD_HOME/conf/httpd.conf
ファイルに追加します。値をセットアップに適切な値に置き換えます。この例では、仮想ホストを使用します。デフォルトの httpd 設定を使用するには、次の手順を参照してください。<VirtualHost *:80> # Your domain name ServerName Domain_NAME_HERE ProxyPreserveHost On # The IP and port of JBoss EAP 6 # These represent the default values, if your httpd is on the same host # as your JBoss EAP 6 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>
変更後に、ファイルを保存します。負荷分散プロキシーを追加します。
mod_proxy
をロードバランサーとして使用し、複数の JBoss EAP 6 サーバーにワークを送信するには、以下の設定をHTTPD_HOME/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
ドキュメンテーション (http://httpd.apache.org/docs/2.2/mod/mod_proxy.html) を参照してください。スティッキーセッションを有効にします。
スティッキーセッションを使用すると、クライアント要求が特定の JBoss EAP 6 ノードに送信された場合に、ノードが利用不可能にならない限り、すべての将来的な要求が同じノードに送信されます。これは、ほとんどの場合で適切な挙動です。mod_proxy
のスティッキーセッションを有効にするには、stickysession
パラメーターをProxyPass
ステートメントに追加します。この例では、使用できる他のいくつかのパラメーターも示されます。詳細については、Apache のmod_proxy
ドキュメンテーション (http://httpd.apache.org/docs/2.2/mod/mod_proxy.html) を参照してください。ProxyPass /MyApp balancer://mycluster stickysession=JSESSIONID lbmethod=bytraffic nofailover=Off
Web サーバーを再起動します。
Web サーバーを再起動して変更を有効にします。
結果
標準またはロードバランシング設定で mod_proxy
を使用してクライアント要求を JBoss EAP 6 サーバーまたはクラスターに送信するよう Apache HTTP Server が設定されます。JBoss EAP 6 がこれらの要求に応答するよう設定するには、「外部 Web サーバーからの要求を許可するよう JBoss EAP 6 を設定」 を参照してください。