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 コマンドの値を変更してください。
mod_cluster アドバタイズセキュリティーキーを設定します。
アドバタイズセキュリティーキーを追加すると、ロードバランサーとサーバーが検出中に認証されます。
以下の管理 CLI コマンドを使用して、mod_cluster アドバタイズセキュリティーキーを設定します。
/profile=ha/subsystem=modcluster/proxy=default:write-attribute(name=advertise-security-key, value=mypassword)
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