13.5.2. Apache HTTPD への Mod_proxy HTTP コネクターのインストール

概要

mod_proxy は、Apache により提供される負荷分散モジュールです。このタスクは、基本的な設定を提供します。高度な設定または詳細については、Apache の mod_proxy ドキュメンテーション (http://httpd.apache.org/docs/2.2/mod/mod_proxy.html) を参照してください。Enterprise Application Platform の観点からの mod_proxy の詳細については、「Apache Mod_proxy HTTP コネクター」「HTTP コネクターの概要 」を参照してください。

前提条件

  • Enterprise Web Server HTTPD または Apache HTTPD をインストールする必要があります。
  • mod_proxy モジュールをインストールする必要があります。Apache HTTPD は、通常、すでに同梱された mod_proxy モジュールで提供されます。これは、Red Hat Enterprise Linux のケースです (JBoss Enterprise Web Server で提供される HTTPD と Microsoft Windows で提供される Apache HTTPD)。
  • HTTPD 設定を変更するには、 root または管理者権限が必要です。
  • HTTPD 設定ディレクトリーを決定します。これは、Apache HTTPD 用の conf/ および modules/ ディレクトリーを含むディレクトリーです。このタスクの残りでは、これは HTTPD_CONF と示されます。通常の値は以下のとおりです。
    • /etc/httpd/
    • EWS_HOME/httpd/ (Enterprise Web Server がインストールされた場所から起動されます)
  1. HTTPD での mod_proxy モジュールの有効化

    HTTPD_CONF/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_CONF/conf/httpd.conf ファイルに追加します。値をセットアップに適切な値に置き換えます。
    この例では、仮想ホストを使用します。デフォルトの HTTPD 設定を使用するには、次の手順を参照してください。
    <VirtualHost *:80>
    # Your domain name
    ServerName Domain_NAME_HERE
    
    ProxyPreserveHost On
    
    # The IP and port of the Enterprise Application Platform
    # These represent the default values, if your HTTPD is on the same host
    # as your Enterprise Application Platform 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 をロードバランサーとして使用し、複数の Enterprise Application Platform サーバーに負荷を送信するには、以下の設定を HTTPD_CONF/conf/httpd.conf ファイルに追加します。
    <Proxy balancer://mycluster>
    
    Order deny,allow
    Allow from all
    
    # Add each 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://host1:8080 route=node1
    BalancerMember http://host2:8180 route=node2
    </Proxy>
    
    # Use the balancer as a single proxy, as in the <VirtualHost> example above.
    ProxyPass /://mycluster
    ProxyPassReverse /  http://host1:8080/
    ProxyPassReverse /  http://host2:8180/
    # Only proxy a specific application
    ProxyPass /MyApp://mycluster
    ProxyPassReverse /MyApp http://host3:8280/MyApp
    
    
    上記の例では、すべて HTTP プロトコルを使用して通信します。 適切な mod_proxy モジュールをロードする場合は、AJP または HTTPS プロトコルを代わりに使用できます。詳細については、Apache mod_cluster ドキュメンテーションを参照してください。
  4. スティッキーセッションを有効にします。

    スティッキーセッションを使用すると、クライアント要求が特定の JBoss Enterprise Application Platform ノードに送信された場合に、ノードが利用不可にならない限り、すべての将来の要求が同じノードに送信されます。これは、ほとんど常に正しい動作です。
    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. HTTPD を再起動します。

    HTTPD サーバーを再起動して変更を反映します。
結果

HTTPD が、標準または負荷分散設定で mod_proxy を使用してクライアント要求を Enterprise Application Platform サーバーまたはクラスターに送信するよう設定されます。Enterprise Application Platform がこれらの要求に応答するよう設定するには、「Enterprise Application Platformが外部 HTTPD から要求を受け入れるように設定」を参照してください。