24.4. JBoss EAP をフロントエンドロードバランサーとして設定

バックエンド JBoss EAP サーバーへリクエストをプロキシーするフロントエンドロードバランサーとして動作するよう JBoss EAP と undertow サブシステムを設定できます。Undertow は非同期 IO を使用するため、リクエストに関与するスレッドは接続用の IO スレッドのみになります。同じスレッドがバックエンドサーバーへの接続に使用されます。

以下のプロトコルを使用できます。

  • HTTP/1 および HTTP/2 (h2c) をサポートするプレーンテキスト上の HTTP (http)
  • HTTP/1 および HTTP/2 (h2c) をサポートするセキュアの接続上の HTTP (http)
  • AJP (ajp)

静的ロードバランサー を定義して設定でバックエンドホストを指定するか、mod_cluster フロントエンド を使用してホストを動的に更新します。

HTTP/2 を使用するよう Undertow を設定する手順は、HTTP/2 の設定 を参照してください。

24.4.1. mod_cluster を使用して Undertow をロードバランサーとして設定

組み込みの mod_cluster フロントエンドロードバランサーを使用して、他の EAP インスタンスを負荷分散できます。

この手順では、管理対象ドメインを実行し、以下が設定済みであることを前提としています。

  • ロードバランサーとして動作する JBoss EAP サーバー。

    • このサーバーは、load-balancer-sockets ソケットバインディンググループにバインドされる load-balancer プロファイルを使用します。

      注記

      このサーバーをフロントエンドロードバランサーとして使用するため、load-balancer プロファイルには、ソケットバインディング、mod-cluster Undertow フィルター、およびデフォルトホストでのフィルターへの参照がすでに事前設定されています。

  • バックエンドサーバーとして動作する 2 つの JBoss EAP サーバー。

    • これらのサーバーはクラスターで実行され、ha-sockets ソケットバインディンググループにバインドされる ha プロファイルを使用します。
  • バックエンドサーバーにデプロイされた負荷分散される分散可能なアプリケーション。
mod_cluster フロントエンドロードバランサーの設定

以下の手順は、管理対象ドメインのサーバーを負荷分散しますが、手順を変更するとスタンドアロンサーバーのセットに適用することができます。ご使用の環境に応じて管理 CLI コマンドの値を変更してください。

  1. mod_cluster アドバタイズセキュリティーキーを設定します。

    アドバタイズセキュリティーキーを追加すると、ロードバランサーとサーバーが検出中に認証されます。

    以下の管理 CLI コマンドを使用して、mod_cluster アドバタイズセキュリティーキーを設定します。

    /profile=ha/subsystem=modcluster/proxy=default:write-attribute(name=advertise-security-key, value=mypassword)
  2. mod_cluster ロードバランサーのセキュリティーキーを更新します。

    以下の管理 CLI コマンドを使用して、mod_cluster フィルターのセキュリティーキーを設定します。

    /profile=load-balancer/subsystem=undertow/configuration=filter/mod-cluster=load-balancer:write-attribute(name=security-key,value=mypassword)
重要

mod_cluster によって使用される管理およびアドバタイズソケットバインディングが内部ネットワークのみで公開され、パブリック IP アドレスで公開されないことが推奨されます。

ロードバランサーである JBoss EAP サーバーが 2 つのバックエンドである JBoss EAP サーバーを負荷分散できるようになります。

複数の mod_cluster 設定

mod_cluster サブシステムは名前の付いたプロキシー設定を複数サポートし、デフォルトでない undertow サーバーをリバースプロキシーに登録できます。さらに、単一のアプリケーションサーバーノードを異なるグループのプロキシーサーバーに登録することができます。

以下の例は、ajp-listener、サーバー、および undertow サーバーへのホストを追加します。また、アドバタイズのメカニズムを使用してホストを登録する新しい mod_cluster 設定も追加します。

/socket-binding-group=standard-sockets/socket-binding=ajp-other:add(port=8010)
/subsystem=undertow/server=other-server:add
/subsystem=undertow/server=other-server/ajp-listener=ajp-other:add(socket-binding=ajp-other)
/subsystem=undertow/server=other-server/host=other-host:add(default-web-module=root-other.war)
/subsystem=undertow/server=other-server/host=other-host
/location=other:add(handler=welcome-content)
/subsystem=undertow/server=other-server/host=other-host:write-attribute(name=alias,value=[localhost]))

/socket-binding-group=standard-sockets/socket-binding=modcluster-other:add(multicast-address=224.0.1.106,multicast-port=23364)
/subsystem=modcluster/proxy=other:add(advertise-socket=modcluster-other,balancer=other-balancer,connector=ajp-other)

reload