3.3. Apache HTTP サーバーおよび mod_cluster を使用した負荷分散の設定


JBoss Web Server 2.1 以降では、デフォルトで Apache HTTP Server に対して mod_cluster が正しく設定されます。カスタム設定を設定するには、「基本的なプロキシーサーバーの設定」を参照してください。

mod_cluster を使用した Tomcat ワーカーノードの設定に関する詳細は、「ワーカーノードの設定」を参照してください。

注記

Red Hat のお客様は Red Hat カスタマーポータルにある Load Balancer Configuration Tool を使用して mod_cluster や Tomcat ワーカーに最適な設定テンプレートを迅速に生成することもできます。

JBoss Web Server 3 にこのツールを使用する場合は、Apache バージョンを 2.4.x として選択し、バックエンド設定を Tomcat として選択してください。

3.3.1. 基本のプロキシサーバーの設定

プロキシーサーバー設定は、1 つの必須手順と 1 つの任意ステップで構成されます。

  1. Proxy Server リスナーを、ワーカーノードの接続要求およびワーカーノードのフィードバックを受信するように設定します。
  2. 任意: サーバーのアドバタイズを無効にします。

サーバーアドバタイズメント

プロキシーサーバーは UDP マルチキャストを使用してアドバタイズします。プロキシーサーバーとワーカーノード間で UDP マルチキャストを利用できる場合、サーバーアドバタイズメントはプロキシーサーバーで追加設定なしでワーカーノードを追加し、ワーカーノードには最低限の設定のみが必要です。

UDP マルチキャストが利用できない、または望ましくない場合は ワーカーノードをプロキシーサーバーの静的リストで設定します。いずれの場合も、プロキシーサーバーはワーカーノードの一覧で設定する必要はありません。

3.3.1.1. mod_cluster を使用したロードバランシングプロキシーの設定

要件

  • JBoss Web Server をインストールし、インストール用に mod_cluster モジュールを設定します。詳細は、JBoss Web Server 『インストールガイド』 を参照してください。

管理チャネル用の仮想ホスト mod_cluster を使用してロードバランシングプロキシーを設定するには、以下を設定する必要があります。

注記

このアドレスとポートの組み合わせは mod_cluster 管理メッセージ用のみで、一般的なトラフィック用ではありません。

  1. プロキシーサーバーの Listen ディレクティブを作成します。

    mod_cluster 設定ファイル (通常は JBCS_HOME/httpd/conf.d/mod_cluster.conf) を編集して以下を追加します。

    Listen IP_ADDRESS:PORT_NUMBER

    IP_ADDRESS は、ワーカーノードと通信するためのサーバーネットワークインターフェースのアドレスで、PORT_NUMBER はリッスンするインターフェースのポートです。

    注記

    ポートは、受信 TCP 接続に対して開いている必要があります。

  2. 仮想ホストを作成します。

    以下を mod_cluster 設定ファイルに追加します。

    <VirtualHost IP_ADDRESS:PORT_NUMBER>
    
       <Directory />
          Require ip IP_ADDRESS
       </Directory>
    
       KeepAliveTimeout 60
       MaxKeepAliveRequests 0
    
       ManagerBalancerName mycluster
       AdvertiseFrequency 5
       EnableMCPMReceive On
    
    </VirtualHost>

    IP_ADDRESS および PORT_NUMBERListen ディレクティブの値に置き換えます。

  3. 任意: サーバーのアドバタイズを無効にします。

    AdvertiseFrequency ディレクティブにより、サーバーは UDP マルチキャストを介してサーバーアドバタイズメッセージを定期的に送信します。デフォルトでは、これは 10 秒ごとに発生します。

    これらのサーバーアドバタイズメッセージには、VirtualHost 定義に指定された IP_ADDRESSPORT_NUMBER が含まれます。サーバーアドバタイズに応答するように設定されたワーカーノードは、この情報を使用してプロキシーサーバーに登録されます。

    サーバーのアドバタイズを無効にするには、以下のディレクティブを VirtualHost 定義に追加します。

    ServerAdvertise Off

    サーバーのアドバタイズが無効になっている場合や、UDP マルチキャストがプロキシーサーバーとワーカーノードの間のネットワークで利用できない場合、ワーカーノードをプロキシーサーバーの静的リストで設定します

  4. 任意: Apache HTTP Server のロギングを設定します。

    どのワーカーノードがリクエストを処理するかをログに記録するために負荷分散を実施している Apache HTTP サーバーを設定できます。これは、ロードバランサーのトラブルシューティングに役立ちます。

    mod_cluster に対してこれを有効にするには、Apache HTTP Server LogFormat ディレクティブに以下を追加します。

    %{BALANCER_NAME}e
    リクエストに対応したバランサーの名前。
    %{BALANCER_WORKER_NAME}e
    要求に対応したワーカーノードの名前。

    ログローテーションを含む Apache HTTP Server ロギングの詳細は、http://httpd.apache.org/docs/2.4/logs.html を参照してください。

  5. Apache HTTP Server サービスを停止して起動します。

    詳細な手順は、JBoss Core Services 『インストールガイド』を参照してください。

3.3.2. ワーカーノードの設定

3.3.2.1. Tomcat ワーカーノードの設定

以下の手順に従って、JBoss Web Server ノードに mod_cluster をインストールし、クラスター化されていない操作に対して設定します。

注記

JBoss Web Server Tomcat ワーカーノードは、mod_cluster 機能のサブセットのみをサポートします。完全な mod_cluster 機能は JBoss EAP で利用できます。

サポートされるワーカーノードのタイプ

  • JBoss Web Server Tomcat サービス。

mod_cluster JBoss Web Server ノードの制限

  • 非クラスターモードのみ。
  • 負荷分散係数を計算するときに一度に使用できる負荷メトリックは 1 つだけです。

要件

Tomcat ワーカーノードを設定するには、以下を実行します。

  1. リスナーを Tomcat に追加します。

    他の Listener の下にある以下の ListenerJWS_HOME/tomcat<VERSION>/conf/server.xml に追加します。

    <Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="true" stickySession="true" stickySessionForce="false" stickySessionRemove="true" />
  2. ワーカーに一意のアイデンティティーを付与します。

    以下に示すように JWS_HOME/tomcat<VERSION>/conf/server.xml を編集し、jvmRoute 属性と値を Engine 要素に追加します。

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker01">
  3. STATUS MCMP メッセージの頻度を設定します。

    Tomcat ワーカーノードは、現在の負荷ステータスを含むステータスメッセージを Apache HTTP Server バランサーに定期的に送信します。これらのメッセージのデフォルトの頻度は 10 秒です。数百のワーカーノードがある場合、STATUS MCMP メッセージによって Apache HTTP Server ネットワークのトラフィック輻輳が増える可能性があります。

    org.jboss.modcluster.container.catalina.status-frequency Java システムプロパティーを変更することで、MCMP メッセージ頻度を設定できます。デフォルトでは、プロパティーは秒に 10 を掛けた値を受け入れます。たとえば、プロパティーを 1 に設定すると 10 秒になります。以下の例は、頻度を 60 秒に設定します。

    -Dorg.jboss.modcluster.container.catalina.status-frequency=6
  4. 任意: プロキシーサーバーのアドバタイズにファイアウォールを設定します。

    mod_cluster を使用するプロキシーサーバーは UDP マルチキャストを介してアドバタイズできます。多くのオペレーティングシステムのファイアウォールは、デフォルトでこれをブロックします。サーバーのアドバタイズを有効にしてこのマルチキャストメッセージを受信するには、ワーカーノードのファイアウォールで UDP 接続の 23364 ポートを開きます。

    • Red Hat Enterprise Linux 6 の場合

      /sbin/iptables -A INPUT -m state --state NEW -m udp -p udp --dport
       23364 -j ACCEPT
      -m comment -comment receive mod_cluster proxy server advertisements

      自動プロキシー検出が使用されていない場合は、ワーカーノードをプロキシーの静的リストで設定します。この場合は、以下の警告メッセージを無視しても問題ありません。

      [warning] mod_advertise: ServerAdvertise Address or Port not defined, Advertise disabled!!!
    • Red Hat Enterprise Linux 7 の場合

      firewall-cmd --permanent --zone=public --add-port=23364/udp
    • PowerShell を使用する Microsoft Windows の場合

      Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "NetSh Advfirewall firewall add rule name="UDP Port 23364" dir=in  action=allow protocol=UDP localport=23364"'
      Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "NetSh Advfirewall firewall add rule name="UDP Port 23364" dir=out action=allow protocol=UDP localport=23364"'

3.3.2.2. 静的プロキシーリストを使用したワーカーノードの設定

サーバーのアドバタイズにより、ワーカーノードをプロキシーサーバーで自動的に検出し、登録することができます。UDP マルチキャストが利用できない場合やサーバーのアドバタイズが無効になっている場合、ワーカーノードはプロキシーサーバーアドレスおよびポートの静的リストで設定する必要があります。

以下の手順を使用して、プロキシーサーバーの静的リストで操作するよう JBoss Web Server ワーカーノードを設定します。

ワーカーノードを静的プロキシーリストで設定するには、以下を実行します。

  1. mod_cluster リスナーを定義し、動的プロキシー検出を無効にします。

    JWS_HOME/tomcat<VERSION>/conf/server.xml を編集し、ModClusterListenerListener 要素を追加または変更します。advertise プロパティーを false に設定します。例を以下に示します。

    <Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="false" stickySession="true" stickySessionForce="false" stickySessionRemove="true"/>
  2. 静的プロキシーサーバーリストを作成します。

    プロキシーのコンマ区切りリストを IP_ADDRESS:PORT 形式で proxyList プロパティーとして Listener に追加します。例を以下に示します。

    <Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="false" stickySession="true" stickySessionForce="false" stickySessionRemove="true" proxyList="10.33.144.3:6666,10.33.144.1:6666"/>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.