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 サブシステムの設定」 を参照してください。
  1. 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
  2. 非負荷分散プロキシーを追加します。

    以下の設定を、他の <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>
    変更後に、ファイルを保存します。
  3. 負荷分散プロキシーを追加します。

    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) を参照してください。
  4. スティッキーセッションを有効にします。

    スティッキーセッションを使用すると、クライアント要求が特定の 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
  5. Web サーバーを再起動します。

    Web サーバーを再起動して変更を有効にします。
結果

標準またはロードバランシング設定で mod_proxy を使用してクライアント要求を JBoss EAP 6 サーバーまたはクラスターに送信するよう Apache HTTP Server が設定されます。JBoss EAP 6 がこれらの要求に応答するよう設定するには、「外部 Web サーバーからの要求を許可するよう JBoss EAP 6 を設定」 を参照してください。