plugin-cfg.xml ファイル
plugin-cfg.xml ファイルには、Web サーバー・プラグインが要求をどのように転送するかを決定する構成情報が含まれます。
WebSphere Application Server
アプリケーション中心 と トポロジー中心の 2 つのタイプの plugin-cfg.xml ファイルを作成できます。
アプリケーション中心の構成ファイルには、Web サーバー定義とアプリケーション・サーバー定義の両方にマップされるアプリケーションがあります。 管理コンソールを使用してプラグインに対して行った変更の内容は、生成時に plugin-cfg.xml ファイルで保持されます。 アプリケーション中心の構成は、柔軟性が増しており、Intelligent Management などの動的機能をサポートします。
トポロジー中心のファイルは、環境内で定義されているすべてを表します。 通常、この plugin-cfg.xml ファイルは、Web サーバーを定義していない場合に使用されます。
- plugin-cfg.xml ファイルが app_server_root\dmgr\cells ディレクトリー内に存在する場合、プラグイン生成プロセスは、管理コンソールの Web サーバー・プラグイン・プロパティー・ページ からの更新された値を無視し、XML ファイル内の既存の値を使用します。 この場合は、更新された値が保持されるように手動で XML ファイルを更新する必要があります。
- plugin-cfg.xml ファイルが app_server_root\dmgr\cells ディレクトリー内に存在しない場合、プラグイン生成プロセスによって plugin-cfg.xml ファイルが作成されます。 このプロセスは、管理コンソールの 「Web サーバー・プラグイン・プロパティー」ページ で設定された最新の値を保持します。
RefreshInterval
、LogLevel
などの多数の Web サーバー・プラグイン・プロパティー、および Edge Side Include (ESI) プロセッサー・プロパティーは、手動でのみ更新できます。 これらの値は、各反復で維持される必要があります。トポロジー中心の構成を使用する場合、生成される plugin-cfg.xmlにカスタム・プロパティーを手動で追加する必要がある場合があります。 生成では、 plugin-cfg.xmlの既存の値は変更されません。 既存の変更を加えずに新規構成を生成するには、グローバル・プラグイン構成を生成する前に、ファイル config/cells/plugin-cfg.xml を削除する必要があります。
既存のトポロジー中心の構成で作業する場合は、管理コンソールを使用するか、セル内のすべてのクラスターに対して GenPluginCfg コマンドを実行して、グローバル plugin-cfg.xml ファイルを更新できます。 ただし、グローバルな plugin-cfg.xml ファイルを更新する前に、config/cells/plugin-cfg.xml ファイルを削除する必要があります。 config/cells/plugin-cfg.xml ファイルを削除しないと、新しいプロパティーとその値のみがグローバル plugin-cfg.xml ファイルに追加されることに注意してください。 既存のプラグイン・プロパティー値に対する更新は、グローバルな plugin-cfg.xml ファイルに追加されません。
エレメントと属性
plugin-cfg.xml ファイルには、
次のエレメントと属性が組み込まれています。 特に指示がない限り、各エレメントおよび属性は、plugin-cfg.xml ファイルの中で 1 回しか指定できません。 Config
エレメントは必須です。
- 構成
- IgnoreDNSFailures
- RefreshInterval
- request503Retry
- RelayServer
- USETLS13
- PoliciesDisable
- ASDisableNagle
- IISDisableNagle
- VHostMatchingCompat
- AppServerPortPreference
- ResponseChunkSize
- AcceptAllContent
- ChunkedResponse
- ESIEnableToPassCookies
- ESICacheidFull
- GetDWLMTable
- OS400ConvertQueryStringToJobCCSID
- ログ
- Property Name="esiEnable" Value="true/false"
- Property Name="esiMaxCacheSize" Value="integer"
- Property Name="ESIInvalidationMonitor" Value="true/false"
- Property Name="FIPSEnable" Value="true/false"
- Property Name="PluginInstallRoot" Value="C:¥IBM¥WebSphere¥Plugins"
- ServerCluster
- VirtualHostGroup
- UriGroup
- ルート
- RequestMetrics
- Intelligent Management のプロパティー
- Security Web Server プラグイン
Config
HTTP プラグイン構成ファイルは、この必須のエレメントから開始されます。
- IgnoreDNSFailures
- プラグインが、開始時に構成内の DNS 障害を無視するかどうかを指定します。
true
に設定すると、 プラグインは構成内の DNS 障害を無視し、各サーバー・クラスターで少なくとも 1 つのサーバーがホスト名を解決できる場合には正常に開始します。 ホスト名を解決できないサーバーは、構成の間 unavailable としてマーク付けされます。 要求の送付時にホスト名の解決は試行されません。 DNS 障害が発生した場合、Web サーバーの開始が阻止されるのではなく、プラグイン・ログ・ファイルにログ・メッセージが書き込まれ、プラグインの初期化が継続されます。 デフォルト値はfalse
です。この場合は、DNS 障害があると Web サーバーは始動しません。 - RefreshInterval
- 更新または変更が行われたかどうかを確認するために、プラグインが構成ファイルを検査する時間間隔を秒で指定します。 プラグインはファイルをチェックして、プラグイン構成が最後
にロードされてから変更が行われたかどうかを調べます。変更が頻繁に行われる開発環境では、設定値をデフォルトの 60 より小さくすることをお勧めします。 実動環境では、構成の更新がそれほど頻繁に行われるわけではないので、 値をデフォルトより大きくしておくことをお勧めします。 何らかの理由でプラグインの再ロードに失敗すると、 プラグインのログ・ファイルにメッセージが書き込まれ、 プラグイン構成ファイルが正常に再ロードされるまでは、以前の構成が使用されます。 プラグイン構成を変更したのにそれが反映されていない場合は、 プラグインのログ・ファイルを調べて、問題が示されていないかどうか確認してください。注: Microsoft、UNIX、および Linux® プラットフォームでは、
plugin-cfg.xml
で RefreshInterval を -1 に設定することで自動再ロードを無効にすることもできます。 - request503Retry
- HTTP プラグインが、アプリケーション・サーバーから 503 応答を受け取った要求を再試行する回数の制限を指定します。 デフォルト値は -1 で、追加の制限は設定されません。応答が受信されるまで、クラスター内のサーバーごとに 1 回ずつ要求が再試行されます。 値 0 は、再試行がないことを示します。 このプロパティーに設定されている値にかかわらず、再試行数は、常にクラスター内のサーバーの数以下となります。このプロパティーは、管理コンソールを使用して設定します。
- クラスター> [クラスター]> クラスター・メンバー > [1st メンバー]> 管理 > カスタム・プロパティー に移動します。
- プロパティー 'PLG.Cluster.requesst503Retry' は、必要な整数値 (-1, 0, 試行するメンバーの数) になります。
- RelayServer
- プラグインが別のクライアントからの接続を再使用するかどうかを指定します。 デフォルトの false は、別のクライアントからの接続を再使用しないことを指定します。 true を指定すると、別のクライアントからの接続が再利用されます。
- ASDisableNagle
- プラグインとアプリケーション・サーバー間の、
接続の Nagle アルゴリズムを使用不可にしたいかどうかを指定します。 デフォルトでは、Nagle アルゴリズムは使用可能です。
値は、
true
またはfalse
のいずれかです。 - IISDisableNagle
- ユーザーが Microsoft Internet Information Services (IIS) で Nagle アルゴリズムを使用不可にするかどうかを指定します。 デフォルトでは、Nagle アルゴリズムは使用可能です。
値は、
true
またはfalse
のいずれかです。 - VHostMatchingCompat
- 仮想ホストのマッチングでポート番号を使用するように指定します。 次のいずれかの値を指定します。
true
は、 要求を受信したポート番号を使用して物理的にマッチングを行う場合に指定します。false
は、 ホストのヘッダーに含まれるポート番号を使用して論理的にマッチングを行う場合に指定します。
デフォルト値は
false
です。 - AppServerPortPreference
- アプリケーション・サーバーが sendRedirect() メソッドの URI を作成する際に使用するポート番号を指定します。 指定できる値は以下のとおりです。
- hostHeader は、着信する HTTP 要求のホスト・ヘッダーにあるポート番号を 使用する場合に指定します。
- webserverPort は、Web サーバーが要求を受信したポート番号を使用する場合に指定します。
デフォルト値は hostHeaderです。
- ResponseChunkSize
- 応答本文の読み取り時に使用する最大チャンク・サイズを指定します。 例えば、Config ResponseChunkSize="N"> と指定します (N はキロバイト単位のチャンク・サイズです)。
プラグインは、すべての応答データが読み取られるまで、64 K チャンクの応答 本文を読み取り続けます。 このアプローチは、要求の応答本文に大量のデータが含まれている場合にパフォーマンスに問題が生じる原因となります。
応答本文の内容の長さが分からない場合には、N KB のバッファー・サイズが割り振られ、すべて読み取られるまで、本文は N KB サイズのチャンク単位で読み取られます。 内容の長さがわかっている場合には、内容の長さまたは N のうち、少ないほうのバッファー・サイズが使用され、応答本文を読み取ります。
デフォルト・チャンク・サイズは、64 K です。
- AcceptAllContent
- 要求のヘッダーに Content-Length または Transfer-encoding ヘッダーが含まれている場合に、ユーザーが POST、PUT、GET、および HEAD 要求にコンテンツを組み込めるようにするかどうかを指定します。 この属性には、次の値のいずれかを指定してください。
True
は、すべての要求に対してコンテンツが予想され、読み取られる場合に指定します。False
は、POST 要求および PUT 要求に対してのみコンテンツが予想され、読み取られる場合に指定します。
デフォルト値は
True
です。 - ChunkedResponse
- クライアントに対する応答内に Transfer-Encoding : Chunked という応答ヘッダーがある場合に、プラグインでその応答にチャンクを使用する必要があるかどうかを指定します。
この属性は、IIS、 Oracle iPlanet、および Lotus® Domino® Web サーバーにのみ適用されます。 IBM® HTTP Server は、クライアントへの応答のチャンク化を自動的に処理します。
この属性には、次の値のいずれかを指定してください。
true
は、 クライアントに対する応答内に Transfer-Encoding : Chunked という応答ヘッダーがある場合に、 プラグインでその応答をチャンク化する場合に指定します。false
は、応答をチャンク化しない場合に指定します。
デフォルト値は
false
です。 - ESIEnableToPassCookies
- ESI 組み込み要求の処理時に、 WebSphere Application Server へのセッション Cookie の転送を許可するかどうかを指定します。 この値を true に設定すると、 このカスタム・プロパティーは有効です。 この値を false に設定すると、 このカスタム・プロパティーは無効です。 デフォルトでは、値は false に設定されます。
- ESICacheidFull
- このプロパティーが true に設定されている場合、プラグインの動作は変更されます。 プラグインではキャッシュ ID を計算する際に、要求 URI のみを使用せずに、仮想ホストと URI の両方を使用します。 このプロパティーを設定すると、プラグインが http://vhost2/URI を処理する場合に、キャッシュ・ヒットは発生しません。 要求はアプリケーション・サーバーに転送され、正しい応答を取得します。
- GetDWLMTable
- 新規に作成されたプラグイン・プロセスが、HTTP 要求を処理する前に、 WebSphere Application Server から区画テーブルを事前に要求できるようにするかどうかを指定します。 このカスタム・プロパティーが使用されるのは、メモリー間セッション管理が構成されている場合のみです。 この値を true に設定すると、
このカスタム・プロパティーは有効です。 この値を false に設定すると、
このカスタム・プロパティーは無効です。 デフォルトでは、値は true に設定されています。問題の回避: WebSphere Application Serverでメモリー間のセッション管理または複製が有効になっている場合は、プラグイン構成の GetDWLMTable 設定を
true
に変更する必要があります。 メモリー間のセッション管理では、クローン ID ではなく区画 ID を使用します。 GetDWLMTable がfalse
に設定されている場合、セッション・アフィニティーの中断が発生する可能性があります。 - OS400ConvertQueryStringToJobCCSID
- 内部処理のために HTTP 要求の照会ストリングを IBM HTTP Server ジョブのコード・ページに変換するのか、 EBCDIC コード・ページ 37 に変換するのかを指定します。 デフォルト値は false であり、照会ストリングは EBCDIC コード・ページ 37 に変換されます。
- TrustedProxyEnable
Web サーバー・プラグインと、TrustedProxyList カスタム・プロパティーにリストされているプロキシー・サーバーおよびロード・バランサーとのインターフェースを許可します。 このプロパティーを
true
に設定すると、このトラステッド・プロキシー・リストにあるプロキシー・サーバーおよびロード・バランサーでは、$WSRA および $WSRH という内部ヘッダーに値を設定することができます。 $WSRA 内部ヘッダーは、リモート・ホスト (通常はブラウザー) の IP アドレス、またはネットワーク・アドレス変換 (N.A.T.) で取得される内部アドレスです。 $WSRH 内部ヘッダーは、リモート・ホストのホスト名です。 このヘッダー情報により、Web サーバー・プラグインは特定のプロキシー・サーバーまたはロード・バランサーとインターフェースを行うことができます。このカスタム・プロパティーを使用するときは、TrustedProxyList カスタム・プロパティーを使用して、信頼できるプロキシー・サーバーおよびロード・バランサーのリストを指定する必要もあります。 また、管理コンソールの「要求ルーティング」パネルの「特殊ヘッダーの除去」チェック・ボックスをクリアする必要があります。 詳しくは、Web サーバー・プラグインの要求ルーティング・プロパティーに関する資料を参照してください。
- TrustedProxyList
この Web サーバー・プラグインとのインターフェースが許可されているすべてのプロキシー・サーバーまたはロード・バランサーの、コンマで区切ったリストを指定します。 このプロパティーは、TrustedProxyEnable=true カスタム・プロパティー設定と一緒に使用する必要があります。 TrustedProxyEnable カスタム・プロパティーが false に設定されている場合、このリストは無視されます。
- SSLConsolidate
Web サーバー・プラグインが、新しい各 SSL トランスポートのセットアップを、構成ファイルで既に定義されている他の SSL トランスポートのセットアップと比較するかどうかを指定します。 このプロパティーを true に設定している状態で、新規 SSL トランスポートに指定された鍵リングと CertLabel の値が、既に定義済みの SSL トランスポートに指定された値と一致しているとプラグインが判断した場合、プラグインは新規 SSL 環境を作成せずに、既存の SSL 環境を使用します。 作成する SSL 環境を少なくすると、プラグインに必要なメモリーが少なくなり、プラグインの初期化時間が短縮されるため、 IBM Global Security Kit (GSKit) 環境全体が最適化されます。
- SSLPKCSDriver
オプションの SSL コプロセッサーとインターフェースするロード可能なモジュールの完全修飾名を指定します。 完全修飾名には、ディレクトリー・パスとモジュール名が含まれている必要があります。
- SSLPKCSPassword
SSLPKCSDriver カスタム・プロパティーに対して指定されたモジュールがインターフェースとして機能する SSL コプロセッサーのパスワードを指定します。
- USETLS13
- プラグが、それ自体と WebSphere Application Serverの間で TLS1.3 暗号化セキュリティーを使用するように強制されることを指定します。 デフォルトは false です。このプロパティーは、管理コンソールを使用して設定します。
- Webserver [ご使用の Webserver] > 「プラグイン・プロパティー」 > 「カスタム・プロパティー」 に移動します。
- プロパティー PLG.Config.USETLS13 に値 true を指定すると、 TLS1.3 暗号化セキュリティーが強制的に使用されます。
このプロパティーが設定されていない場合は、false の設定が想定されます。
- PoliciesDisable
- アプリケーション・サーバーの証明書チェーンに表示される可能性がある証明書ポリシー関連エクステンションの妥当性検査を無効にするかどうかを指定します。このプロパティーは、管理コンソールを使用して設定します。
- 「Web サーバー [ご使用の Web サーバー]」>「プラグイン・プロパティー」>「カスタム・プロパティー」 に移動します。
- プロパティー PLG.Config.PoliciesDisable に値 true を指定して、証明書ポリシー関連の拡張の検証を無効にします。
Log
プラグインが書き込むログ・メッセージのロケーションとレベルを示します。 構成ファイル内で Log エレメントが指定されていないと、場合によっては、Web サーバーのエラー・ログにログ・メッセージが書き込まれます。
例えば、以下のようなコード行を指定します。
<Log LogLevel="Error" Name="/opt/WebSphere/AppServer60/logs/http_plugin.log"/>
- Name
プラグインがエラー・メッセージを書き込むログ・ファイルへの完全修飾パスを指定します。 各ログに属性を 1 つだけ指定します。
ファイルが存在しない場合は、作成されます。 このファイルが存在している場合は、そのファイルが付加モードで開かれ、それまでのプラグイン・ログ・メッセージは残ります。
- LogLevel
プラグインがログに書き込むログ・メッセージの詳細レベルを指定します。 各ログについて、値を指定しないか、以下のいずれかの値を指定します。
ログ・レベルの値 ログ・レベルの説明 Trace 要求プロセスのすべてのステップの詳細がログに記録されます。 Stats それぞれの要求に対して選択されたサーバー、および、要求の処理に関するその他のロード・バランシング情報がログに記録されます。 警告 異常な要求処理の結果出された、すべての警告およびエラー・メッセージがログに記録されます。 エラー 異常な要求処理の結果出された、エラー・メッセージのみがログに記録されます。 DEBUG 要求の処理中に実行された重大なステップがすべてログに記録されます。 詳細 要求および応答に関するすべての情報がログに記録されます。 Log エレメントに対して LogLevel 値が指定されていない場合は、デフォルト値の Error が使用されます。トラブルの回避: レベルを「トレース」に設定する際には注意してください。 このレベルでは複数のメッセージが記録されるため、スペースが急速に消費される可能性があります。 正常に機能している環境ではパフォーマンスに悪い影響を与えるため、Trace 設定は使用しないでください。
ESI
- プロパティー名 = "esiEnable" Value="true/false"
- Edge Side Include (ESI) プロセッサーを使用可能または使用不可にします。 ESI プロセッサーが使用不可になっている場合は、このファイル内のその他の ESI エレメントは無視されます。
Value は
true
またはfalse
に設定可能です。 デフォルトでは、この値がtrue
に設定され、ESI プロセッサーが使用可能になっています。 - プロパティー名 = "esiMaxCacheSize" Value="integer"
- キャッシュの最大サイズを 1 KB 単位で指定します。 デフォルトの最大キャッシュ・サイズは 1024 KB (1 MB) です。 キャッシュが満杯の場合、キャッシュから最初に削除されるのは、有効期限に最も近いエントリーです。
- プロパティー名 = "ESIInvalidationMonitor" Value="true/false"
- ESI プロセッサーがアプリケーション・サーバーから無効化を受け取るかどうかを指定します。
Value
はtrue
またはfalse
に設定可能です。 デフォルトでは、このプロパティーはfalse
に設定されています。 - プロパティー名 = "FIPSEnable "Value="true/false"
- アプリケーション・サーバーへの Secure Sockets Layer (SSL) 接続を行うために、連邦情報処理標準 (FIPS) を使用可能にするかどうかを指定します。 アプリケーション・サーバーで FIPS を使用可能にする場合は、このプロパティーを
true
に設定してください。Value
はtrue
またはfalse
に設定可能です。 デフォルトでは、このプロパティーはfalse
に設定されています。 - Property Name="PluginInstallRoot" Value="C:¥IBM¥WebSphere¥Plugins"
- プラグインのインストール・パスを指定します。 IBM Global Security Kit (GSKit) を使用する場合、 WebSphere Application Server はグローバル・インストールではなく GSKit のローカル・インストールをサポートするため、このプロパティーは必須です。 属性値は、プラグイン・インストール・ルートへの完全修飾パスに設定します。
サポートされている名前でトランスポートが認識するのは、 鍵リング (keyring)、stash ファイル (stashfile)、およびパスワード (password) です。 デフォルトでは、このプロパティーは
none
に設定されます。
ServerCluster
一般に、同じタイプの要求を実行するように構成されているサーバーのグループを指定します。 各構成に 1 つ以上のクラスターを指定します。
最も単純なケースでは、クラスターに含まれるサーバー定義は 1 つだけです。 複数のサーバーが定義されている場合は、プラグインが、ラウンドロビンまたはランダムのアルゴリズムを使用して、定義されたサーバー全体のロード・バランシングを行います。 デフォルトのアルゴリズムはラウンドロビンです。
以下のコードは、ServerCluster エレメントの例です。
<ServerCluster Name="Servers">
<ClusterAddress Name="ClusterAddr">
<Transport Hostname="192.168.1.2" Port="9080" Protocol="HTTP"/>
<Transport Hostname="192.168.1.2" Port="9443" Protocol="HTTPS">
<Property Name="Keyring" value="c:/WebSphere/AppServer/keys/keyring.kdb"/>
<Property Name="Stashfile" value="c:/WebSphere/AppServer/keys/keyring.sth"/>
</Transport>
</ClusterAddress>
<Server Name="Server1">
<Transport Hostname="192.168.1.3" Port="9080" Protocol="HTTP"/>
<Transport Hostname="192.168.1.3" Port="9443" Protocol="HTTPS">
<Property Name="Keyring" value="c:/WebSphere/AppServer/keys/keyring.kdb"/>
<Property Name="Stashfile" value="c:/WebSphere/AppServer/keys/keyring.sth"/>
</Transport>
</Server>
<Server Name=Server2>
<Transport Hostname="192.168.1.4" Port="9080" Protocol="HTTP"/>
<Transport Hostname="192.168.1.4" Port="9443" Protocol="HTTPS">
<Property Name="Keyring" value="c:/WebSphere/AppServer/keys/keyring.kdb"/>
<Property Name="Stashfile" value="c:/WebSphere/AppServer/keys/keyring.sth"/>
</Transport>
</Server>
<Server Name="Server3">
<Transport Hostname="192.168.1.5" Port="9080" Protocol="HTTP"/>
<Transport Hostname="192.168.1.5" Port="9443" Protocol="HTTPS">
<Property Name="Keyring" value="c:/WebSphere/AppServer/keys/keyring.kdb"/>
<Property Name="Stashfile" value="c:/WebSphere/AppServer/keys/keyring.sth"/>
</Transport>
</Server>
<PrimaryServers>
<Server Name="Server1"/>
<Server Name="Server2"/>
</PrimaryServers>
<BackupServers>
<Server Name="Server3"/>
</BackupServers>
</ServerCluster>
z/OS® PTF UK35083 パッケージには、この Web サーバー・プラグイン変更に対応する z/OS HTTP Serverバージョン 5.3の SSL インターフェース変更が含まれています。 したがって、この PTF がシステムに適用されていなければ、Web サーバー・プラグインの新しい SSL インターフェースは正常に機能しません。
また、 IBM HTTP Server for z/OSバージョン 5.3の httpd.conf ファイルに SSLMODE=MULTI オプションを含める必要があります。 SSLMODE=ON オプションは、バージョン 7.0 以上ではサポートされません。
httpd.conf ファイルに SSLMode multi オプションが指定されていない場合、または z/OS PTF UK35083 パッケージがシステムに適用されていない場合、エラー・メッセージ IMW0584Wを受け取ることがあります。 このメッセージは、 HTTP Serverに指定された SSL モードが、 IBM HTTP Server for z/OSバージョン 5.3で使用される Web サーバー・プラグインの SSL モードと互換性がないことを示します。 このどちらの場合も、予測不能な結果が生じる可能性があります。
- 階層ファイル・システム (HFS) 内の stashfile で kdb ファイルを使用する場合は、上記の例に示すように、
Property Name=keyring
エレメントとProperty Name=stashfile
エレメントの両方を指定します。トラブルの回避: これらのエレメントに指定する値のフォーマットは、以前のバージョンの製品で指定したフォーマットとは異なります。 - kdb ファイルではなく System Authorization Facility (SAF) 鍵リングを使用する場合、管理コンソールから 2 つのカスタム・プラグイン・プロパティーを作成してください。
- KeyringLocation
- このプロパティーの値として、SAF 鍵リングのディレクトリー・ロケーションを指定します。 この構成変更を保存すると、このディレクトリー・ロケーションが、plugin-cfg.xml ファイルの keyring プロパティーの値になります。
- StashfileLocation
- このプロパティーの値として
""
(ヌル) を指定します。 この構成変更を保存すると、""
(ヌル) が plugin-cfg.xml ファイル内の stashfile プロパティーの値になります。
管理コンソールから
KeyringLocation
およびStashfileLocation
を作成する方法については、「 Web サーバー・プラグインの構成プロパティー 」を参照してください。以下の SAF 鍵リングの例を使用してください。<Transport Hostname="appserver.example.com" Port="9443" Protocol="https"> <Property name="keyring" value="safkeyring:///SAF_keyring_name"/> <Property Name="stashfile" value=""/> </Transport>
- Name
このサーバー・グループで使用される論理名または管理名を指定します。 各 ServerCluster に、1 つの属性を指定します。
- LoadBalance
この属性には、以下の値を指定できます。
ラウンドロビン
ランダム
ラウンドロビン実装の出発点はランダムです。 最初のアプリケーション・サーバーはランダムに選出されます。 それ以降のアプリケーション・サーバーの選出には、ラウンドロビンが使用されます。 この実装により、マルチプロセス・ベースの Web サーバーで、同一のアプリケーション・サーバーに最初の要求を送信することで、すべてのプロセスが開始しないようになります。
また、ランダム実装の出発点はランダムです。 ただし、この実装では、後続のサーバーもすべてランダムに選択されます。 そのため、同じサーバーが繰り返し選択されても、他のサーバーはアイドルのままになることがあります。
デフォルトのロード・バランシング・タイプは「ラウンドロビン」です。
- IgnoreAffinityRequests
ラウンドロビン・アルゴリズムに基づいてサーバーを選択したときにサーバーに送られるアフィニティー要求の数をプラグインが無視するかどうかを指定します。 値は
true
またはfalse
です。 このカスタム・プロパティーは、アフィニティー要求がルーティングされる方法には影響しません。 これが影響するのは、ラウンドロビン・ロードの重みづけカウントのみです。 このカスタム・プロパティーを true に設定すると、アフィニティー要求はカウントされず、新規要求のみがカウントされます。 プラグインは新規要求を均等に分散しますが、affinity
およびnew
を含む要求の合計は、セッション・アフィニティーのために偏っているように見える可能性があります。 このカスタム・プロパティーを false に設定すると、アフィニティー要求がロード・バランシングの重み付けに対してカウントされます。 プラグインでは、要求合計がより少ない、使用可能なクラスター・メンバーに新規要求を分散します。 false を設定すると、新規要求の分散の偏りが調整されて、要求合計が均等に分散されます。重要: IgnoreAffinity要求カスタム・プロパティーの推奨値は trueです。 一部のフィックスパック・レベルではデフォルトは false です。 デフォルト値が false に設定されている場合は、true に変更します。 - RetryInterval
サーバーがマークされてからプラグインが接続を再試行するまでの経過時間の長さを表す整数を指定します。 デフォルトは 60 秒です。 各 ServerCluster に、ゼロまたは 1 つの属性を指定します。
- RemoveSpecialHeaders
プラグインは、アプリケーション・サーバーに転送される前に、 要求に特殊なヘッダーを追加します。 これらのヘッダーには、アプリケーションが使用する要求に関する情報が格納されています。 デフォルトでは、プラグインは着信要求からこれらのヘッダーを除去してから、追加する予定のヘッダーを追加します。 各 ServerCluster に、ゼロまたは 1 つの属性を指定します。
値は、
true
またはfalse
のいずれかです。 この属性を false に設定すると、 ヘッダーを着信要求から除去しないことになり、機密漏れのおそれが生じます。 - CloneSeparatorChange
プラグインに対して、プラス文字 (+) をクローン分離文字と見なすように指示します。 一部のパーベイシブ・デバイスは、セッション・アフィニティーと連動するクローン ID を区切るために使用されるコロン文字 (:) を処理できません。 アプリケーション・サーバーでクローン ID を区切る際、プラス記号も使用するようにアプリケーション・サーバーの構成を変更してください。 各 ServerCluster に、ゼロまたは 1 つの属性を指定します。
値は、
true
またはfalse
のいずれかです。 - PostSizeLimit
プラグインがアプリケーション・サーバーへの要求の送信を試行する際に許容される、要求のコンテンツの KB (1024 バイト) ブロックの最大数。 このサイズよりも大きい要求を受信した場合、プラグインは、この要求の処理に失敗します。 デフォルト値は -1 バイトです。これは、ポスト・サイズに制限がないことを示しています。 各 ServerCluster に、ゼロまたは 1 つの属性を指定します。
- PostBufferSize
HTTP 要求のコンテンツを読み取る際に使用する最大バッファー・サイズを KB 単位で指定します。 要求を最初に受信したアプリケーション・サーバーがその要求を処理できない場合、このバッファーに含まれるデータは別のアプリケーション・サーバーに送信されます。 その後、そのアプリケーション・サーバーでの要求の処理が試行されます。 コンテンツのある要求をバッファーに入れて再試行しない場合は、このオプションをゼロに設定します。
このオプションを指定すると、プラグインの可用性が 向上します。 このオプションをゼロ以外の値に設定すると、選択したアプリケーション・サーバーが応答しない場合に、ペイロードが含まれたすべての保留パケットが再送されます。
通常、POST 要求および PUT 要求がペイロードを伝送しますが、他の要求も ペイロードを伝送する場合があります。 たとえ POST 要求あるいは PUT 要求がペイロードを伝送していない場合でも 、このオプションの指定値がゼロ以外の場合は再試行されます。
デフォルト値は 0 です。 各 ServerCluster に、ゼロまたは 1 つの属性を指定します。
- ServerIOTimeoutRetry
ServerIOTimeout が原因でタイムアウトになった HTTP 要求 を HTTP プラグインが再試行する回数の限度を指定します。 デフォルト値 -1 は、再試行回数に 追加的に適用される制限はないことを示します。 値 0 は、 再試行がないことを示します。 再試行は、常にクラスター内の使用可能なサーバーの数に よって制限されます。
重要: このディレクティブは、HTTP プラグイン ConnectTimeoutが原因の接続の失敗またはタイムアウトには適用されません。 - Serverプラグイン構成のルーティング・ルールに基づいてルーティングされた要求を処理するように構成された WebSphere Application Server インスタンスを指定します。 このサーバーは、ローカル・マシンまたはリモート・マシンで稼働しているアプリケーション・サーバーに対応しています。 各 ServerCluster に、ゼロまたは 1 つの属性を指定します。
- Name
サーバーの管理名または論理名を指定します。 各サーバーに属性を 1 つだけ指定します。
- WaitForContinue
HTTP 1.1 を使用するかどうかを指定します。100 Continueアプリケーション・サーバーに要求の内容を送信する前にサポートします。 可能な属性値は、
true
またはfalse
です。 デフォルト値は falseです。プラグインは、以下を待機しません。100 Continueパフォーマンス・ヒットであるため、要求コンテンツを送信する前のアプリケーション・サーバーからの応答。 各サーバーに、ゼロまたは 1 つの属性を指定します。キープアライブ・タイムアウトのためにアプリケーション・サーバーが接続を閉じた場合に障害が発生するのを避けるため、POST 要求の場合には、このプロパティーは無視されます。
この機能は、ある種のプロキシー・ファイアウォールを使用するようにプラグインを構成する場合に、true に設定して有効にします。
- LoadBalanceWeight
重みづけを使用したラウンドロビン・ロード・バランシングをプラグインが実行する場合に、このサーバーに関連付けられる重みを指定します。 各サーバーに、ゼロまたは 1 つの属性を指定します。 サーバーの開始値は、 0 から 20 までの任意の整数です。 ただし、ゼロは、稼働していないサーバーの場合にのみ指定してください。
各サーバーの LoadBalanceWeight 値は、そのサーバーが要求を処理するたびに減分されます。 サーバー・クラスター内の特定のサーバーの重みがゼロに達した後は、セッション・アフィニティーを持つ要求のみがそのサーバーにルーティングされます。 クラスター内のすべてのサーバーの重みがゼロに達すると、そのクラスター内のすべてのサーバーの重みがリセットされ、このアルゴリズムが再始動されます。
ベスト・プラクティス: サーバーが稼働していない場合は、そのサーバーの重みをゼロに設定します。 そうすると、プラグインによってまだ実行中のサーバーのウェイトがリセットされ、正常なロード・バランシングが維持されます。 - ConnectTimeout
プラグインがアプリケーション・サーバーとの非ブロッキング接続を実行できるようにします。 非ブロッキング接続は、プラグインが宛先と接続して、ポートが使用可能かどうかを判断することができない場合に役立ちます。 各サーバーに、ゼロまたは 1 つの属性を指定します。
ConnectTimeout 値が指定されていないか 0 に設定されている場合、プラグインはブロッキング接続を実行します。その場合、プラグインは、オペレーティング・システムがタイムアウトになり (プラットフォームによって異なりますが、2 分程度)、プラグインがサーバーに使用不可のマークを付けることができるようになるまで何もしません。 値を 0 にすると、プラグインはブロッキング接続を実行します。 0 よりも大きい値は、正常に接続されるまでプラグインが待機する秒数を指定します。 時間間隔後に接続されなかった場合、 プラグインは、サーバーに unavailable とマークを付けて、クラスターで定義されている他のサーバーの 1 つにフェイルオーバーします。
デフォルト値は 5です。
- ExtendedHandshake
プラグインとアプリケーション・サーバーの間にプロキシー・ファイアウォールがあるときに使用されます。 このような場合、プラグインは予想通りにフェイルオーバーしていません。 各サーバーに、ゼロまたは 1 つの属性を指定します。
プラグインは、connect() メソッドが失敗した場合に、サーバーにダウンとマークを付けます。 しかし、プラグインとアプリケーション・サーバーの間にプロキシー・ファイアウォールがある場合には、バックエンド・アプリケーション・サーバーがダウンしていても、connect() メソッドは成功します。 つまり、プラグインは他のアプリケーション・サーバーに正しくフェイルオーバーされないことになります。
プラグインは、アプリケーション・サーバーと複数のハンドシェークを行い、要求を送る前にアプリケーション・サーバーが開始されることを確認します。 このシナリオにより、アプリケーション・サーバーがダウンした場合には、プラグインをフェイルオーバーできるようになります。
値は、
true
またはfalse
のいずれかです。 - MaxConnections
任意の時点で Web サーバー・プロセスを流れることができる、アプリケーション・サーバーへの保留中の接続の最大数を指定します。 各サーバーにエレメントを 1 つ指定します。
例えば、以下のようなシナリオがあるとします。- アプリケーション・サーバーの前面には、 IBM HTTP Serverを実行している 5 つのノードがあります。
- それぞれのノードは 2 つのプロセスを開始します。
- MaxConnections 属性は 50 に設定されています。
この例では、アプリケーション・サーバーは、最大 500 個の接続を受ける可能性があります。 ノード数 5 にプロセス数 2 を掛け、その数に MaxConnections 属性に指定した数 50 を掛けると、合計で 500 接続になります。
デフォルトでは、MaxConnections は -1 に設定されています。 この属性がゼロまたは -1 に設定されている場合、そのアプリケーション・サーバーに対して保留されている接続の数に制限はありません。
- Transport
特定の WebSphere Application Server インスタンスに対する要求の読み取りおよび書き込みのためのトランスポートを指定します。 トランスポートでは、要求の送信先となるアプリケーション・サーバーのロケーションを判断するために必要な情報が提供されます。 プラグインは、複数のトランスポートが同じプロトコルを使用するよう定義されていることを認識できません。 プラグインが選択するトランスポートを予測することはできません。 プラグインは常に、処理中に検出した最初のトランスポートを選択します。 各サーバーにエレメントを 1 つ以上指定します。
サーバーが、非セキュア・トランスポートと SSL を使用するトランスポートを持つように、 構成することもできます。 この構成では、着信要求プロトコルの突き合わせが実行され、 要求をアプリケーション・サーバーに送信するのに適当なトランスポートが決定されます。
- Hostname
WebSphere Application Server インスタンスが実行されているマシンのホスト名または IP アドレスを指定します。 各トランスポートに属性が 1 つだけ存在します。
- Port
WebSphere Application Server インスタンスが listen するポートを指定します。 各トランスポートに属性が 1 つだけ存在します。
- Protocol
このトランスポート上で通信する場合に使用するプロトコル (HTTP または HTTPS) を指定します。 各トランスポートに属性が 1 つだけ存在します。
- Hostname
- Property各トランスポートにエレメントをゼロまたは 1 つ以上指定します。 トランスポートの プロトコルが HTTPS に設定されている場合は、このエレメントを使用して、 各種の初期化パラメーター (password、keyring、stashfile など) を提供します。 例えば、plugin-cfg.xml ファイルでこれらのエレメントが含まれている部分は、以下のコードのようになっています。
<Transport Hostname="192.168.1.2" Port="9443" Protocol="HTTPS"> <Property Name="keyring" value="c:/WebSphere/AppServer/keys/keyring.kdb"/> <Property Name="stashfile" value="c:/WebSphere/AppServer/keys/keyring.sth"/> <Property Name="password" value="WebAS"/>
- Name
定義されるプロパティーの名前を指定します。 サポートされている名前でトランスポートが認識するのは、 鍵リング (keyring)、stash ファイル (stashfile)、およびパスワード (password) です。
問題の回避: WebSphere HTTP plug-in for z/OS に指定できる名前は、 passwordのみです。 keyring および stashfile を指定した場合、それらは無視されます。各プロパティーに属性を 1 つだけ指定します。 - Value
定義されるプロパティーの値を指定します。 各プロパティーに属性を 1 つだけ指定します。
- Name
- ServerIOTimeout
プラグインで、アプリケーション・サーバーに要求を送信し、アプリケーション・サーバーから応答を読み取る場合のタイムアウト値 (秒) を設定できるようにします。
ServerIOTimeout 属性を正の値に設定した場合、サーバーへのこの接続試行は、タイムアウトが発生すると終了します。 ただし、サーバーは接続不可と見なされないため、これ以降の要求もタイムアウトが発生したサーバーに引き続き送信されます。
ServerIOTimeout 属性を負の値に設定した場合、タイムアウトが発生するとサーバーは接続不可と見なされるため、これ以降の要求はタイムアウトが発生したサーバーに送信されません。
ServerIOTimeout 属性に値が設定されていない場合は、デフォルトでは、プラグインはブロック入出力を使用して、アプリケーション・サーバーとの間で要求の書き込みおよび応答の読み取りを行い、TCP 接続をタイムアウトさせません。 例えば、以下の設定を指定できます。
<Server Name="server1" ServerIOTimeout=300>
この場合、アプリケーション・サーバーが要求への応答を停止すると、TCP 接続は、 プラグインが 300 秒 (5 分) 待機した後にタイムアウトになります。 ServerIOTimeout 属性を 妥当な値に設定すると、プラグインの接続がタイムアウトになるまでの時間を短くして、 可能な場合に別のアプリケーション・サーバーに要求を転送できるように なります。
この属性の値を選択する際は、アプリケーション・サーバーが要求を処理するまでに数分かかる場合があることに注意してください。 ServerIOTimeout 属性の値を低く設定しすぎると、 プラグインが偽のサーバー・エラー応答をクライアントに送信してしまうことがあります。
デフォルト値は 900 であり、これは 15 分に相当します。
トラブルの回避: ServerIOTimeout は、個々の読み取り操作または書き込み操作が戻るまでプラグインが待機する時間を制限します。 ServerIOTimeout は、要求全体に対するタイムアウトを表すものではありません。ServerIOTimeout 属性の構成方法に関する追加の推奨事項については、 IBM サポート Web サイトの「 Web サーバー・プラグイン構成の技術情報 」を参照してください。
アプリケーション・サーバーへの要求、およびアプリケーション・サーバーから読み取る応答は、すべてが同じタイムアウト・ルールを必要とするわけではありません。 URL が異なると、要求をより早くタイムアウトする必要がある場合、あるいは、要求に対してすべてのサーバーを再試行するわけではない場合があります。 変更された ServerIOTimeout、 ServerIOTimeoutRetry、websphere-wsserveriotimeout、または websphere-wsserveriotimeoutretry の属性を使用する、特定の URL を指定できます。 あるいは、ExtendedHandshake 応答および 100-Continues 応答に時間を短縮したタイムアウトを使用する URL を指定できます。 そのように変更されない他の URL は、 Plugin-cfg.xml ファイル内に指定された値を引き続き使用します。- websphere-wsserveriotimeout
この属性は、Web サーバー・プラグインと、WebSocket アプリケーションの間で保留中の読み取りおよび書き込みアクションのタイムアウト値 (秒単位) を設定します。 指定された値を超えると、応答していないアプリケーション・サーバーによって保持されているリソースが解放されます。
デフォルト値は 30 秒です。
- websphere-wsserveriotimeoutretry
この属性は、Web サーバー・プラグインと WebSocket アプリケーションの間の接続をアイドルのままにできるタイムアウト値 (秒単位) を設定します。 指定された値を超えると、アプリケーション・サーバーによって保持されているリソースが解放されます。
デフォルト値は 900 秒です。 使いやすい設定としては、24 時間 (86400 秒)、7 日 (604800 秒) などがあります。
- websphere-wsserveridletimeout
この属性は、Web サーバー・プラグインと、WebSocket クライアントまたはアプリケーションの間で読み取りおよび書き込みのアクションのタイムアウト値 (秒単位) を設定します。 指定された値を超えると、WebSocket 接続に関連付けられたリソースが解放されます。
つまり、この属性は、クライアントとアプリケーションの間でデータが転送されずに、WebSocket クライアントがアイドル状態を維持する時間を設定します。 このアイドル時間の制限に達すると、WebSocket クライアントはタイムアウトになり、クローズされます。
デフォルト値は 900 秒です。
- webSphere-shorten-handshake 属性として設定できる値は 1 のみです。 この値は、ExtendedHandshake 応答または 100-Continue 応答の待ち時間として ConnectTimeout 値を使用するようプラグインに指示します。
この変更されたタイムアウト処理を使用する URL を指定するには、SetEnvIf ディレクティブを使用して httpd.conf ファイルを変更します。 同じ URL グループに複数のプロパティーを適用できます。 例えば、websphere-serveriotimeout 属性と websphere-serveriotimeoutretry 属性の両方を、同じ Request_URI 値に対して指定することができます。SetEnvIf Request_URI "\.jsp$" websphere-serveriotimeout=10 SetEnvIf Request_URI "\.jsp$" websphere-serveriotimeoutretry=-1 SetEnvIf Request_URI "\.jsp$" websphere-wsserveriotimeout=300 SetEnvIf Request_URI "\.jsp$" websphere-wsserveridletimeout=1800 SetEnvIf Request_URI "\.jsp$" websphere-shorten-handshake=1
- Name
- ClusterAddress
ClusterAddress は Server エレメントと同様のエレメントで、同じ属性およびエレメントを指定することができます。 ただし、ServerCluster 内には、これらのうち 1 つしか定義することができません。 プラグインとアプリケーション・サーバーの間に Load Balancer があるため、プラグインでロード・バランシングを実行しない場合には、ClusterAddress を使用してください。
問題の回避: ClusterAddress タグを含める場合は、そのタグにName
属性を含める必要があります。 プラグインはそのName
属性を使用して、 クラスター・アドレスを正しいホストおよびポートに 関連付けます。Name
属性を指定しない場合、プラグインはクラスター・アドレスに、 同じホストおよびポートを使用するサーバー用に指定されている名前を 割り当てます。<ClusterAddress Name="MyClusterAddr"> <Transport Hostname="192.168.1.2" Port="9080" Protocol="HTTP"/> <Transport Hostname="192.168.1.2" Port="9443" Protocol="HTTPS"> </ClusterAddress>
アフィニティーが確立されていない要求を受信した場合、プラグインは、 この要求をクラスター・アドレスに送付します (クラスター・アドレスが定義されている場合)。 アフィニティーが確立されている場合、プラグインは、クラスター・アドレスを完全にバイパスして 要求を直接クローンに送付します。 サーバー・クラスターにクラスター・アドレスが 定義されていない場合、プラグインは、1 次サーバー・リストにあるサーバー間の ロード・バランスを取ります。
各 ServerCluster にゼロまたは 1 つのエレメントを指定できます。
- PrimaryServers
プラグインがこのクラスターに対する要求を送付するサーバーのリストを 指定します。 1 次サーバーのリストが指定されていない場合、プラグインは、 サーバー・クラスターに対して定義されているサーバーに要求を送付します。 各 ServerCluster に、ゼロまたは 1 つのエレメントを指定します。
- BackupServers
1 次サーバー・リストに指定されているすべてのサーバーが使用できない場合に要求の送信先となるサーバーのリストを指定します。 プラグインはバックアップ・サーバー間のロード・バランスは取りませんが、リスト内に残っているサーバーがなくなるまで、または要求が正常に送信されてアプリケーション・サーバーから応答を受信するまで、リストを順番に全探索します。 各 ServerCluster に、ゼロまたは 1 つのエレメントを指定します。
- VirtualHostGroup
- HTTP ホスト・ヘッダーで指定される仮想ホスト名のグループを指定します。 このプロパティーを使用して、同じようなタイプの要求を処理するように構成された仮想ホスト定義をグループ化します。
以下の例は、
VirtualHostGroup
エレメントと、関連するエレメントおよび属性を示しています。<VirtualHostGroup Name="Hosts"> <VirtualHost Name="www.x.com"/> <VirtualHost Name="www.x.com:443"/> <VirtualHost Name="*:8080"/> <VirtualHost Name="www.x.com:*"/> <VirtualHost Name="*:*"/> </VirtualHostGroup>
- Name
この仮想ホスト・グループで使用される論理名または管理名を指定します。 各 VirtualHostGroup に属性を 1 つだけ指定します。
- VirtualHost
着信要求を WebSphere Application Serverで処理する必要があるかどうかを判別するために使用される仮想マシンまたは実マシンの名前を指定します。 このエレメントは、HTTP ホスト・ヘッダーにあるホスト名を指定するために使用します。このヘッダーは、アプリケーション・サーバーによって処理する必要がある要求の場合に必要になります。 着信要求の特定のホスト名やポートを指定することも、ホスト名またはポート、あるいはその両方にアスタリスク (*) を指定することもできます。
各 VirtualHostGroup に 1 つ以上のエレメントを指定できます。
- Name
HTTP ホスト・ヘッダーに、VirtualHost の名前と一致する名前を指定します。 各 VirtualHost に属性を 1 つだけ指定します。
この値は、ホスト名または IP アドレスとポートを組み合わせて、 それぞれをコロンで区切ったものです。
プラグインは、要求の経路を、 その要求のために着信する HTTP ホスト・ヘッダーとポートに基づくアプリケーション・サーバーに定めるように、 構成することができます。
Name
属性で、それらの組み合わせを指定します。この属性にはワイルドカードが使用できます。 ホスト名に対して *、 ポートに対して *、あるいはその両方に対して * のいずれかしか、 使用できません。 両方に対して * を使用することは、この規則にはどんな要求でも一致することを意味しています。 定義でポートが指定されていない場合は、デフォルトの HTTP ポート (80) が想定されます。
- Name
- Name
- UriGroup
- HTTP 要求行で指定される URI のグループを指定します。 URI は、
同じアプリケーション・サーバーで処理しなければなりません。 経路は着信する URI とグループ内の URI を比較して、
アプリケーション・サーバーが要求を処理するかどうかを判断します。
以下の例は、UriGroup エレメントと、関連するエレメントおよび属性を示しています。
<UriGroup Name="Uris"> <Uri Name="/servlet/snoop/"> <Uri Name="/webapp/*/"> <Uri Name="*.jsp/"> </UriGroup>
- Name
この URI グループの論理名または管理名を指定します。 各 UriGroup に属性を 1 つだけ指定します。
- Uri
WebSphere Application Serverによってサービスされるリソースへの仮想パスを指定します。 URI はそれぞれ、アプリケーション・サーバーが処理する必要のある着信 URL を示します。 これらの定義では、ワイルドカードが使用できます。 各 UriGroup に 1 つ以上の属性を指定できます。
- Name
HTTP 要求行に指定される、この URI と正常に付き合わせる実際のストリングを指定します。 URI 定義内ではワイルドカードが使用できます。 *.jsp や /servlet/ * などの規則を WebSphere Application Serverで処理するように指定できます。 アプリケーションをアセンブルする際に「ファイル・サービスを可能にする」を指定すると、明示的なサーブレット・マッピングには関係なく、Web アプリケーションではワイルドカード URI のみが生成されます。 「クラス名ごとにサーブレットを提供する (Serve servlets by classname)」を指定すると、次の URI が生成されます。 <Uri Name="Web_application_URI/servlet/*">
各 URI に属性が 1 つだけ存在します。
- AffinityCookie
インバウンド要求にセッション・アフィニティーがあるかどうかを判断する場合にプラグインが使用する Cookie の名前を指定します。 デフォルト値は JSESSIONID です。
各 URI にゼロまたは 1 つの属性を指定できます。
- AffinityURLIdentifier
インバウンド要求の URL に特定のクローンに対するアフィニティーが指定されているかどうかを判断する場合にプラグインが使用する識別子の名前を指定します。 デフォルト値は jsessionidです。
各 URI にゼロまたは 1 つの属性を指定できます。
- Name
- Name
Route
着信要求を WebSphere Application Serverで処理する必要があるかどうかをプラグインが判別するための要求ルーティング規則を指定します。
経路定義は、プラグイン構成の中心的なエレメントです。 これにより、プラグインが要求をその一定の特性に基づいて処理する方法が指定されます。 経路定義には、その他の主なエレメント (必須の ServerCluster と、 VirtualHostGroup または UriGroup、あるいはその両方) が含まれています。
経路の VirtualHostGroup と UriGroup で定義されている情報を使用して、プラグインは、Web サーバーへの着信要求を、この経路に定義されている ServerCluster エレメントに送信するかどうかを決定します。
このエレメントの例を以下に示します。
<Route VirtualHostGroup="Hosts" UriGroup="Uris" ServerCluster="servers"/>
- VirtualHostGroup
経路の判別に使用される仮想ホストのグループを指定します。 着信するホスト・ヘッダーとサーバー・ポートを突き合わせて、この要求がアプリケーション・サーバーで処理されるかどうかを判断します。
このプロパティーは、経路定義から省略することもできます。 これがない場合は、要求はそれぞれ、経路決定の仮想ホストの突き合わせ部分で突き合わせます。
各 Route にゼロまたは 1 つの属性を指定できます。
- UriGroup
経路の判別に使用する URI のグループを指定します。 各 Route にゼロまたは 1 つのグループを選択します。 要求の着信 URI をこのグループの定義済み URI と突き合わせて、この要求がアプリケーション・サーバーで処理されるかどうかを判断します。
このプロパティーは、経路定義から省略することもできます。 これがない場合は、要求はそれぞれ、経路決定の URI の突き合わせ部分で突き合わせます。
- ServerCluster
経路と正常に一致した要求を受信するクラスターを指定します。 各 Route にクラスターを 1 つだけ選択します。
このクラスターを使用して、この要求が処理されます。 URI と仮想ホストの両方の突き合わせがこの経路で正常に行われたら、このクラスター内に定義されているサーバーのいずれかに要求が送信されます。
- RequestMetrics
- 要求メトリックが使用可能かどうか、および要求メトリックが使用可能な場合にインターネット・プロトコル (IP) および Uniform Resource Identifier (URI) に基づいて要求をフィルタリングする方法を判別するために使用されます。
このエレメントの例を以下に示します。
<RequestMetrics armEnabled="false" loggingEnabled="true" rmEnabled="false" traceLevel="PERF_DEBUG">
- armEnabled
ARM 4 エージェントがプラグイン内で有効になっているかどうかを指定します。
true
に設定されている場合、ARM 4 エージェントが呼び出されます。トラブルの回避: SunOne (iPlanet) Web Server の場合、ARM 4 サポートを有効にするには、以下のディレクティブを obj.conf ファイルに含める必要があります。
このディレクティブが含まれていない場合は、 arm_stop プロシージャーは呼び出されません。AddLog fn="as_term"
RequestMetrics に対してゼロまたは 1 つの属性を選択します。
- loggingEnabled
要求メトリック・ロギングがプラグイン内で有効になっているかどうかを指定します。 この属性が
true
に設定され、traceLevel が NONE に設定されていない場合は、要求応答時間およびその他の要求情報がログに記録されます。false
に設定されている場合には、 要求は記録されません。 loggingEnabled の値は、 システム・プロパティー com.ibm.websphere.pmi.reqmetrics.loggingEnabled で指定される値によって異なります。 このシステム・プロパティーが存在しない場合、 loggingEnable はtrue
に設定されます。 RequestMetrics に属性を 1 つだけ指定します。 - rmEnabled
要求メトリックがプラグイン内で有効になっているかどうかを指定します。 これを
true
に設定すると、プラグイン、要求メトリックはフィルターを検査して、プラグイン・ログ・ファイルに要求トレース・レコードを記録します。 このアクションが行われるのは、要求がフィルターを渡す場合です。 この属性をfalse
に設定すると、残りの要求メトリック属性は無視されます。 RequestMetrics に属性を 1 つだけ指定します。 - traceLevel
rmEnabled
属性をtrue
に設定した場合にログに記録する情報の量を指示します。 この属性をNONE
に設定すると、 要求ロギングは実行されません。 この属性をNONE
に設定せず、loggingEnabled をtrue
に設定すると、要求が実行されるときに要求応答時間およびその他の要求情報がログに記録されます。 RequestMetrics に属性を 1 つだけ指定します。 - filters
rmEnabled が true の場合、フィルターは、 どの要求がトレース対象となるのかを制御します。 RequestMetrics にゼロ、1 つ、または 2 つの属性を指定します。
- enable
enable が true の場合、フィルターのタイプがオンになり、 要求がフィルターをパスする必要があります。 各フィルターに属性を 1 つだけ指定します。
- type
SOURCE_IP (例えば、クライアント IP アドレス) フィルターと URI フィルターの 2 種類があります。 SOURCE_IP フィルター・タイプの場合、要求は既知の IP アドレスに基づいてフィルターに掛けられます。 アスタリスク (*) を使用して、IP アドレスのマスクを指定できます。 アスタリスクを使用する場合、アスタリスクは常にマスクの最後の文字でなければなりません。例えば、 127.0.0. *, 127.0.*, 127*. パフォーマンス上の理由から、パターンは、フィルター内にアスタリスクがあるか、ミスマッチになるか、あるいはフィルターが完全に一致することが分かるまで、文字を 1 つずつ突き合わせます。
URI フィルター・タイプの場合、要求は、着信 HTTP 要求の URI に基づいてフィルターに掛けられます。 パターン・マッチングのルールは、 SOURCE_IP アドレス・フィルターのマッチングの場合と同じです。
URI フィルターとクライアント IP アドレス・フィルターの両方が使用可能な場合、要求メトリックは両方のフィルター・タイプと一致する必要があります。 どちらも使用不可な場合、すべての要求は一致しているとみなされます。
各フィルターに属性が 1 つだけ存在します。
- filterValues
詳細なフィルター情報を指定します。 各フィルターに 1 つ以上の属性を指定します。
- value
対応するフィルター・タイプにフィルター値を指定します。 この値には、クライアントの IP アドレスまたは URI のいずれを指定してもかまいません。 各 filterValue に属性を 1 つだけ指定します。
- value
- enable
- armEnabled
IntelligentManagement プロパティー
プロパティー名 =「OdrPortPathPrefix" Value="完全修飾パス」
OdrPortPathPrefix プロパティーは、UNIX ソケット用に使用される一時ファイルの保管に使用するディレクトリーを示します。 デフォルトでは、Web サーバーのログ・ディレクトリーがそのロケーションになります。 root 以外のユーザーとして Web サーバーを始動する場合は、このディレクトリーに対する許可を変更してこれらの一時ファイルに対する読み取りおよび書き込みアクセスを許可するか、または OdrPortPathPrefix プロパティーを必要な許可を持つ完全修飾パスに設定する必要があります。
IBM では、OdrPortPathPrefix プロパティーを定義するために plugin-cfg.xml ファイルを手動で編集することをお勧めしていません。 その代わり、適切にフォーマットされた server.xml ファイルを作成するために、管理コンソールの使用とプラグイン・ジェネレーターの実行により、必要なプロパティーをすべて設定する必要があります。 OdrPortPathPrefix プロパティーを設定するには、管理コンソールおよび以下のナビゲーション・パスを使用します。
「Web サーバー」 > 「Intelligent Management」 > 「Intelligent Management プラグインのプロパティー」
<Property name="OdrPortPathPrefix" value="/tmp/odrpidloc"/>
enableRoutingToAdminConsole
コネクター・グループが表す WebSphere セルの管理コンソールへのルーティングを有効にします。
retryinterval
Intelligent Management サービスを使用可能にする操作の再試行間隔 (秒数) を指定します。 デフォルト値は 60 秒です。
maxRetries
Intelligent Management サービスを使用可能にする操作の最大再試行回数を指定します。 デフォルト値は -1 です。
RoutingRulesConnectorClusterName
Intelligent Management for Web サーバーがルーティング・ルールを読み取るセルを指定します。このセルは、<IntelligentManagement>plugin-cfg.xml ファイル内のスタンザ。 このプロパティーの値は、plugin-cfg.xml ファイル内のセルの名前で初期設定化されます。 この動作を変更するには、以下の RoutingRulesConnectorClusterName プロパティーで指定されているセルにルーティング・ルールを追加します。<IntelligentManagement>plugin-cfg.xml ファイル内のスタンザ。
RemoveSpecialHeaders
この属性は通常、クラスター・レベルで使用されます。 Intelligent Management は、その処理によってクラスターを管理する方法のため、この属性を認識しません。 この属性は構成レベルの属性であり、 PLG.Config.RemoveSpecialHeaders を trueに設定します。
- Webserver [ご使用の Webserver] > 「プラグイン・プロパティー」 > 「カスタム・プロパティー」 に移動します。
- プロパティー PLG.Config.RemoveSpecialHeaders に値 真を追加します。
このプロパティーが設定されていない場合は、false の設定が想定されます。
セキュリティー Web サーバー・プラグイン
- HostVerificationStartupCheck
- SecureHost検証
- IMSecureConnector検証
- IMSecureEndpoint検証
- GlobalHost別名
- HostnameAlias
extraConfigProperties
および Open Libertyの Web Server Plugin (pluginConfiguration) で説明されているプラグイン生成の手順を参照してください。HostVerificationStartupCheck
プラグインが始動時に XML 内のすべての定義済みトランスポートを検証するかどうかを指定します。 値は true
または false
のいずれかです。 値が指定されていない場合、デフォルト設定は true
です。
このプロパティーは、 Webserver [ご使用の Webserver] > 「プラグイン・プロパティー」 > 「カスタム・プロパティー」で設定できます。
SecureHostの検証
妥当性検査が失敗した場合の処理方法を指定します。 可能な値は、 true-markdown
、 true-nomarkdown
、および false
です。 このプロパティーを true-markdown
または true-nomarkdown
に設定した場合、検証が失敗すると、サーバーのマークダウン動作は設定に基づいて処理されます。 Intelligent Management は、このプロパティー設定の外部でマークダウン動作を処理します。 このプロパティーを false
に設定すると、製品タイプに関係なく、すべての検証がオフになります。 値が指定されていない場合、デフォルト設定は true-markdown
です。
このプロパティーは、 Webserver [ご使用の Webserver] > 「プラグイン・プロパティー」 > 「カスタム・プロパティー」で設定できます。
IMSecureConnectorの検証
プラグインが Intelligent Management グループ内のすべてのコネクターを検証するかどうかを指定します。 このプロパティーの有効な値は、 fail
、 warn
、および off
です。 この検証は、 SecureHostVerification プロパティーが true-markdown
値または true-nomarkdown
値に設定されている場合にのみ実行できます。
プラグインがロードされると、すべての Intelligent Management グループからすべてのコネクターのリストが作成されます。 新しい HTTPS
接続が必要になると、プラグイン・ソフトウェアは必要な証明書の検証を実行します。 IMSecureConnectorVerification プロパティーが fail
に設定されている場合、検証に失敗すると、ストリームがキャンセルされ、メッセージがログに記録されます。 IMSecureConnectorVerification プロパティーが warn
に設定されている場合、メッセージのみがログに記録されますが、ストリームは続行を許可されます。 値が指定されていない場合、デフォルト設定は fail
です。
このプロパティーは、 Webserver [ご使用の Webserver] > 「プラグイン・プロパティー」 > 「カスタム・プロパティー」で設定できます。
IMSecureEndpointの検証
プラグインが、コネクターによって返されるエンドポイント・ホスト名を検証するかどうかを指定します。 このプロパティーの有効な値は、 fail
、 warn
、および off
です。 この検証は、 SecureHostVerification プロパティーが true-markdown
値または true-nomarkdown
値に設定されている場合にのみ実行できます。
新規ストリームが必要な場合、プラグインは必要な証明書の検証を実行します。 プロパティーが fail
に設定されている妥当性検査が失敗すると、ストリームがキャンセルされ、メッセージがログに記録されます。 IMSecureConnectorVerification プロパティーが warn
に設定されている場合、メッセージのみがログに記録されますが、ストリームは続行を許可されます。 値が指定されていない場合、デフォルト設定は fail
です。
このプロパティーは、 Webserver [ご使用の Webserver] > 「プラグイン・プロパティー」 > 「カスタム・プロパティー」で設定できます。
GlobalHost別名
証明書の妥当性検査を実行するホスト名または IP 値のコンマ区切りリストを指定します。 このコンマ区切りリストには、スペースが含まれていてはなりません。 このプロパティーにはデフォルト値の設定はありません。
このプロパティーは、 Webserver [ご使用の Webserver] > 「プラグイン・プロパティー」 > 「カスタム・プロパティー」で設定できます。
HostnameAlias
このプロパティーは具体的には、単一のホスト名値の証明書を検証するためのトランスポート・プロパティーです。 hostname
または IP address
を指定します。
このプロパティーは、Liberty または Intelligent Management では使用できません。
このプロパティーは、 アプリケーション・サーバー [アプリケーション・サーバー] > Web コンテナー > トランスポート・チェーン > WCinboundDefaultSecure > TCP インバウンド・チャネル (TCP_4) > 「カスタム・プロパティー」 で設定できます。