24.5. 外部 Web サーバーのプロキシーサーバーとしての使用

JBoss EAP は、外部 Web サーバーの設定に応じて、サポートされる HTTP、HTTPS、または AJP プロトコルを使用して外部 Web サーバーからリクエストを許可できます。

各 Web サーバーのサポートされる HTTP コネクターの詳細は、HTTP コネクターの概要 を参照してください。使用する Web サーバーと HTTP コネクターを決定したら、適切なコネクターの設定情報の項を参照してください。

HTTP コネクターのサポートされる設定に関する最新情報は、JBoss EAP でサポートされる設定 を参照してください。

また、JBoss EAP が 外部 Web サーバーからのリクエストを許可 するよう設定されている必要があります。

24.5.1. HTTP コネクターの概要

JBoss EAP には、Apache HTTP Server、Microsoft IIS、Oracle iPlanet などの外部 Web サーバーや Undertow より構築された負荷分散およびクラスターリングメカニズムを使用する機能があります。JBoss EAP はコネクターを使用して Web サーバーと通信します。これらのコネクターは JBoss EAP の undertow サブシステム内に設定されます。

Web サーバーには、HTTP リクエストが JBoss EAP ノードにルーティングされる方法を制御するソフトウェアモジュールが含まれています。これらのモジュールの挙動や設定方法はモジュールごとに異なります。モジュールは、複数の JBoss EAP ノード全体でワークロードを分散したり、障害発生時にワークロードを他のサーバーに移動したりするために設定されます。

JBoss EAP は複数のコネクターをサポートします。使用中の Web サーバーや必要な機能に応じてコネクターを選択します。以下の表を参照して、サポートされる設定と、JBoss EAP と互換性のある HTTP コネクターの機能を比較してください。

注記

JBoss EAP 7 をマルチプラットフォームロードバランサーとして使用する場合は mod_cluster を使用して Undertow をロードバランサーとして設定 を参照してください。

HTTP コネクターのサポートされる設定に関する最新情報は、JBoss EAP でサポートされる設定 を参照してください。

表24.1 HTTP コネクターでサポートされる設定

コネクターWeb Serverサポート対象オペレーティングシステムサポート対象プロトコル

mod_cluster

Red Hat JBoss Core Services の Apache HTTP Server、Red Hat JBoss Web Server の Apache HTTP Server、JBoss EAP (Undertow)

Red Hat Enterprise Linux、Microsoft Windows Server、Oracle Solaris

HTTP、HTTPS、AJP、WebSocket

mod_jk

Red Hat JBoss Core Services の Apache HTTP Server、Red Hat JBoss Web Server の Apache HTTP Server

Red Hat Enterprise Linux、Microsoft Windows Server、Oracle Solaris

AJP

mod_proxy

Red Hat JBoss Core Services の Apache HTTP Server、Red Hat JBoss Web Server の Apache HTTP Server

Red Hat Enterprise Linux、Microsoft Windows Server、Oracle Solaris

HTTP、HTTPS、AJP

ISAPI コネクター

Microsoft IIS

Microsoft Windows Server

AJP

NSAPI コネクター

Oracle iPlanet Web Server

Oracle Solaris

AJP

表24.2 HTTP コネクターの機能

コネクタースティッキーセッションのサポートデプロイメント状態への適合

mod_cluster

可。アプリケーションのデプロイメントとアンデプロイメントを検出し、アプリケーションがそのサーバーにデプロイされたかどうかに基づいて、サーバーにクライアント要求を送信するかどうかを動的に決定します。

mod_jk

不可。 アプリケーションの状態に関係なく、コンテナーが利用可能な限り、クライアント要求をコンテナーに送信します。

mod_proxy

不可。 アプリケーションの状態に関係なく、コンテナーが利用可能な限り、クライアント要求をコンテナーに送信します。

ISAPI コネクター

不可。 アプリケーションの状態に関係なく、コンテナーが利用可能な限り、クライアント要求をコンテナーに送信します。

NSAPI コネクター

不可。 アプリケーションの状態に関係なく、コンテナーが利用可能な限り、クライアント要求をコンテナーに送信します。

24.5.2. Apache HTTP Server

スタンドアロン Apache HTTP Server バンドルは、Red Hat JBoss Core Services の個別ダウンロードとして利用できるようになりました。これにより、インストールと設定が容易になり、更新の一貫性が保たれます。

24.5.2.1. Apache HTTP Server のインストール

Apache HTTP Server のインストールに関する詳細は、JBoss Core Services の Apache HTTP Server Installation Guide を参照してください。

24.5.3. 外部 Web サーバーからのリクエストの許可

JBoss EAP に AJP、HTTP、 HTTPS などの適切なプロトコルハンドラーが設定されていれば、プロキシーサーバーからのリクエストを許可するための特別な設定は必要ありません。

プロキシーサーバーが mod_jk、mod_proxy、ISAPI、または NSAPI を使用する場合、リクエストを JBoss EAP に送信し、JBoss EAP は応答を返信します。mod_cluster の場合、リクエストをどこにルーティングするかを判断できるようにするため、JBoss EAP が現在の負荷、アプリケーションライフサイクルイベント、ヘルス状態などの情報をプロキシーサーバーへ送信できるようネットワークを設定する必要もあります。mod_cluster プロキシーサーバーの設定に関する詳細は mod_cluster HTTP コネクター を参照してください。

JBoss EAP 設定の更新

以下の手順では、例で使用されているプロトコルやポートを実際に設定する必要があるプロトコルやポートに置き換えてください。

  1. Undertow の instance-id 属性を設定します。

    外部 Web サーバーは instance-id を使用してコネクター設定の JBoss EAP インスタンスを識別します。以下の管理 CLI コマンドを使用して、Undertow で instance-id 属性を設定します。

    /subsystem=undertow:write-attribute(name=instance-id,value=node1)

    上記の例では、外部 Web サーバーは現在の JBoss EAP インスタンスを node1 として識別します。

  2. 必要なリスナーを Undertow に追加します。

    外部 Web サーバーが JBoss EAP に接続するには、Undertow にリスナーが必要です。各プロトコルにはソケットバインディングに関連する独自のリスナーが必要です。

    注記

    プロトコルやポート設定によってはこの手順は必要でないことがあります。HTTP リスナーはデフォルトの JBoss EAP 設定すべてに設定されており、ha または full-ha プロファイルを使用している場合、AJP リスナーは設定されています。

    デフォルトのサーバー設定を確認すると、必要なリスナーが設定済みであるかどうかを確認できます。

    /subsystem=undertow/server=default-server:read-resource

    リスナーを Undertow に追加するには、ソケットバインディングが必要です。ソケットバインディングは、サーバーまたはサーバーグループによって使用されるソケットバインディンググループに追加されます。以下の管理 CLI コマンドを使用すると ajp ソケットバインディングが追加され、ポート 8009standard-sockets ソケットバインディンググループにバインドされます。

    /socket-binding-group=standard-sockets/socket-binding=ajp:add(port=8009)

    以下の管理 CLI コマンドを使用すると ajp ソケットバインディングを使用して ajp リスナーが Undertow に追加されます。

    /subsystem=undertow/server=default-server/ajp-listener=ajp:add(socket-binding=ajp)