Web サーバー・プラグイン

Web サーバー・プラグインは、 Web サーバーで動的コンテンツ (サーブレットなど) の要求をアプリケーション・サーバーに送信できるようにします。 Web サーバー・プラグインは、各 Web サーバー定義と関連付けられています。 各プラグインに対して生成される構成ファイル (plugin-cfg.xml) は、 関連付けられている Web サーバーを介して経路指定されるアプリケーションを基にしています。

Web サーバー・プラグインは、サポートされる Web サーバーからアプ リケーション・サーバーに HTTP 要求を転送するのに使用されます。 Web サーバーとアプリケーション・サーバー間で通信を提供する Web サー バー・プラグインを使用すると、以下の利点があります。
  • XML ベースの構成ファイルである
  • ファイアウォール製品が認識する標準プロトコルである
  • HTTPS を使用するセキュリティーであり、 独自仕様のオープン・サーブレット・エンジン (OSE) を Secure Sockets Layer (SSL) に置き換える

サポートされている Web サーバーのプラグインはそれぞれ、各種のオペレーティング・システム上で動作します。 見るサポートされているハードウェアとソフトウェアサポートされている Web サーバーに関する最新情報については、製品を参照してください。

トラブルを避ける: Web サーバー プラグインのデフォルトの動作では、最大 64 キロバイトの要求をバッファリングし、アプリケーション サーバーから応答がない場合に要求を再試行します。 高可用性を保証したいが HTTP 要求が大量になる傾向がある場合、管理コンソールで Web サーバー・プラグインの要求ルーティング・プロパティー・ページ内の「HTTP 要求コンテンツを読み取る際の最大バッファー・サイズ (Maximum buffer size used when reading HTTP request content)」プロパティーを -1 に設定してください。 このプロパティーを -1 に設定すると、最大バッファー・サイズの制限がなくなり、 サイズに関係なく、すべての要求が Web サーバー・プラグインによりバッファーに入れられます。 要求本体がバッファー・サイズ内におさまる場合、要求は再試行されます。 すべての要求バッファリングを使用不可にして、要求本体を持つ要求の再試行も使用不可にしたい場合、このプロパティーを 0 に設定してください。

アフィニティー要求

アフィニティー要求とは、JSESSIONID を含む要求のことです。 セッション・アフィニティーとは、同じ JSESSIONID のすべての要求が同じアプリケーション・サーバーに送信されることを意味します。 例えば、最初の要求が clone5 に送信された場合、plugin-cfg.xml ファイル内の LoadBalanceWeight プロパティーに指定されたウェイト値に関係なく、同じブラウザーからの次のアフィニティー要求も clone5 に送信されます。

IgnoreAffinityRequests を true に設定する

Web サーバー・プラグイン要求ルーティング・プロパティーのロード・バランシング・オプションに「ラウンドロビン」を選択し、plugin-cfg.xml ファイル内の IgnoreAffinityRequests プロパティーをデフォルト値の true のままにした場合、アフィニティー要求はロード・バランシング・ウェイトを下げません。 これはほとんどの環境で最適であり、変更が必要なことはめったにありません。

IgnoreAffinityRequests を false に設定する

IgnoreAffinityRequests プロパティーを false に設定すると、アフィニティー要求が受信されるたびにウェイトが下げられます。

注記:注意:IgnoreAffinityRequests設定する間違いプラグインは、プラグイン プロセスの実行時間全体にわたって、サーバー間の全体的な分散を均等にしようとします。 サーバー間のこの分配が原因で、すべてのトラフィックが一部の少数のサーバーに送信され、サーバー過負荷になる可能性があります。

選択した場合Randomのために負荷分散オプションプロパティでは、アフィニティ要求は同じクローンIDに送信されますが、新しい要求はランダムにルーティングされ、LoadBalanceWeightプロパティは無視されます。

フェイルオーバー

要求接続が plugin-cfg.xml ファイル内の ConnectTimeout プロパティーに指定されている制限時間を超えた場合、または、アプリケーション・サーバーから 5xx エラーが返された場合、 Web サーバー・プラグインは、そのサーバーをダウンとマークし、別のアプリケーション・サーバーへの接続を試みます。

要求または応答で、plugin-cfg.xml ファイル内の ServerIOTimeout プロパティーに指定されている時間制限を初めて超えた場合、通常、フェイルオーバーは起こりません。 代わりに、Web サーバー・プラグインは、新しいストリームを使用して、同じアプリケーション・サーバーに要求を再送信しようとします。 ServerIOTimeout プロパティーで指定されている制限時間を再度超えた場合、Web サーバー・プラグインは、そのサーバーに使用不可であることを示すマークを付け、フェイルオーバー・プロセスを開始します。

トラブルを避ける:同じアプリケーション サーバーに多数の保留中の要求を送信すると、フェイルオーバーが発生した場合にそのアプリケーション サーバーのパフォーマンスに影響する可能性があります。 MaxConnections プロパティーを使用して、1 つのアプリケーション・サーバーで保留中にできる要求数を制限することができます。

Web サーバーの複数の子プロセスの実行

ほとんどの Web サーバーは、複数の子プロセスを開始するように構成することができます。 この場合、各子プロセスは、それぞれの Web サーバー・インスタンスをロードします。 Web サーバーの子プロセスを複数実行する場合は、以下の点に注意してください。
  • Web サーバー・プラグインの複数の実行インスタンスは、情報を共有できません。 そのため、各アプリケーション・サーバーのロード・バランスのウェイトが動的に変更されても、その変更は Web サーバー・プラグインのインスタンス間で共有されません。 例えば、Web サーバー・プラグインのあるインスタンスでは、アプリケーション・サーバーをウェイト 5 で 実行されているものとみなし、Web サーバー・プラグインの別のインスタンスでは、その同じアプリケーション・サーバーをダウン状態で使用できないものとみなす可能性があります。 このパースペクティブの違いにより、要求を処理する Web サーバー・プラグインに応じて、着信要求の処理方法が異なる可能性があります。
  • Web サーバー・プラグイン設定は、インスタンス・ベースで処理されます。 例えば、MaxConnections プロパティーは、その Web サーバー上の各 Web サーバー・プラグイン・インスタンスに対して許可される保留要求の数を指定します。 MaxConnections プロパティー が 20 に設定されている場合に Web サーバーの子プロセスを 3 つ開始すると、 Web サーバー・プラグインの 3 つの各インスタンスが同じアプリケーション・サーバーに対して 20 の 保留接続を許可するため、保留接続が最大 60 までになる可能性があります。