24.5. 外部 Web サーバーのプロキシーサーバーとしての使用
JBoss EAP は、外部 Web サーバーの設定に応じて、サポートされる HTTP、HTTPS、または AJP プロトコルを使用して外部 Web サーバーからリクエストを許可できます。
各 Web サーバーのサポートされる HTTP コネクターの詳細は、「HTTP コネクターの概要」を参照してください。使用する Web サーバーと HTTP コネクターを決定したら、適切なコネクターの設定情報の項を参照してください。
- Apache HTTP Server の場合は、「mod_cluster」、「mod_jk」、または「mod_proxy」の項を参照してください。
- Microsoft IIS の場合は、「ISAPI コネクター」の項を参照してください。
- Oracle iPlanet Web Server の場合は、「NSAPI コネクター」の項を参照してください。
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 でサポートされる構成」を参照してください。
コネクター | Web Server | サポート対象オペレーティングシステム | サポート対象プロトコル |
---|---|---|---|
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 | |
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 | |
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 | |
Microsoft IIS | Microsoft Windows Server | AJP | |
Oracle iPlanet Web Server | Oracle Solaris | AJP |
コネクター | スティッキーセッションのサポート | デプロイメント状態への適合 |
---|---|---|
○ | 可。アプリケーションのデプロイメントとアンデプロイメントを検出し、アプリケーションがそのサーバーにデプロイされたかどうかに基づいて、サーバーにクライアント要求を送信するかどうかを動的に決定します。 | |
○ | 不可。 アプリケーションの状態に関係なく、コンテナーが利用可能な限り、クライアント要求をコンテナーに送信します。 | |
○ | 不可。 アプリケーションの状態に関係なく、コンテナーが利用可能な限り、クライアント要求をコンテナーに送信します。 | |
○ | 不可。 アプリケーションの状態に関係なく、コンテナーが利用可能な限り、クライアント要求をコンテナーに送信します。 | |
○ | 不可。 アプリケーションの状態に関係なく、コンテナーが利用可能な限り、クライアント要求をコンテナーに送信します。 |
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 設定の更新
以下の手順では、例で使用されているプロトコルやポートを実際に設定する必要があるプロトコルやポートに置き換えてください。
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
として識別します。必要なリスナーを Undertow に追加します。
外部 Web サーバーが JBoss EAP に接続するには、Undertow にリスナーが必要です。各プロトコルにはソケットバインディングに関連する独自のリスナーが必要です。
注記プロトコルやポート設定によってはこの手順は必要でないことがあります。HTTP リスナーはデフォルトの JBoss EAP 設定すべてに設定されており、ha または full-ha プロファイルを使用している場合、AJP リスナーは設定されています。
デフォルトのサーバー設定を確認すると、必要なリスナーが設定済みであるかどうかを確認できます。
/subsystem=undertow/server=default-server:read-resource
リスナーを Undertow に追加するには、ソケットバインディングが必要です。ソケットバインディングは、サーバーまたはサーバーグループによって使用されるソケットバインディンググループに追加されます。以下の管理 CLI コマンドを使用すると
ajp
ソケットバインディングが追加され、ポート8009
とstandard-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)