環境に変更があったときに WebSphere プラグイン構成ファイルを再生成することを必要とせずに Liberty 集合のメンバーに HTTP 要求をルーティングするように、動的ルーティング・フィーチャーを構成できます。
このタスクについて
Intelligent Management を使用して HTTP 要求を Liberty 集合にルーティングするには、集合内の 1 つ以上の集合コントローラーで dynamicRouting-1.0 フィーチャーを有効にする必要があります。
このフィーチャーが提供する動的ルーティング・サービスは、
集合リポジトリーから動的にルーティング情報を取得し、その情報を WebSphere® プラグインに送達します。また、このフィーチャーは dynamicRouting コマンドを提供します。このコマンドの setup、
genPluginCfg、および genKeystore コマンド・アクションを一緒に使用して、プラグインと動的ルーティング・サービスとの間のセキュア通信に必要な鍵ストアと、WebSphere プラグインの Intelligent Management を使用可能にするプラグイン構成ファイルを生成します。
ルーティング・ルール機能を使用すると、
WebSphere プラグインへの着信要求を、指定されたサーバー・セットにルーティングできます。また、
要求を選択的に拒否またはリダイレクトすることもできます。着信要求にルールを適用するかどうかの選択は、着信要求の属性の突き合わせによって行われます。
手順
- コントローラーの server.xml 内の featureManager タグに以下のコードを追加することによって、
そのコントローラーで動的ルーティングを使用可能にします。
<feature>dynamicRouting-1.0</feature>
- 動的ルーティング・フィーチャーが使用可能にされたすべてのコントローラーを開始します。
- コントローラーの 1 つで dynamicRouting setup コマンドを実行して、
鍵ストア・ファイルおよびプラグイン構成ファイルを生成します。以下に例を示します。
./dynamicRouting setup --port=9444 --host=controller1.acme.com --user=admin --password=passw0rd --keystorePassword=webAS --pluginInstallRoot=/opt/HTTPServer_Plugins/ --webServerNames=webserver1
注: --user 引数に指定された値がユーザー・レジストリー内に存在し、管理ロールが割り当てられていることを確認してください。
詳しくは、動的ルーティング・コマンドを参照してください。
- 生成された plugin-key.jks ファイルおよび plugin-cfg.xml ファイルを、Web サーバー・ホスト上の一時ディレクトリーにコピーします。
- Web サーバー・ホスト上で、gskcmd (IHS パッケージに含まれています) を実行して、
鍵ストアを CMS フォーマットに変換し、個人証明書をデフォルトとして設定します。CMS フォーマットは、サポートされている、WebSphere プラグインのフォーマットです。以下に例を示します。
gskcmd -keydb -convert -pw webAS -db /tmp/plugin-key.jks -old_format jks -target /tmp/plugin-key.kdb -new_format cms -stash
gskcmd -cert -setdefault -pw <<password>> -db /tmp/plugin-key.kdb -label default
z/OS の場合、z/OS での鍵ストアの CMS フォーマットへの変換を参照してください。
- gskcmd によって生成された plugin-key.kdb ファイル、plugin-key.rdb ファイル、および plugin-key.sth ファイルを、一時ディレクトリーからディレクトリー --pluginInstallRootargument_value/config/web_server_name/ にコピーします。
- plugin-cfg.xml を、Web サーバー httpd.conf ファイル内の WebSpherePluginConfig ディレクティブに指定されたディレクトリーにコピーします。plugin-cfg.xml は <IntelligentManagement> スタンザを伴って生成されます。集合において動的ルーティングが使用可能になっている場合、集合コントローラーごとに 1 つの <Connector> スタンザが存在します。
例:
<IntelligentManagement>
<Property name="webserverName" value="webServer1"/>
<ConnectorCluster enabled="true" maxRetries="-1" name="default" retryInterval="60">
<Property name="uri" value="/ibm/api/dynamicRouting"/>
<Connector host="controller1.acme.com" port="9444" protocol="https">
<Property name="keyring" value="/opt/HTTPServer_Plugins/config/webserver1/plugin-key.kdb"/>
</Connector>
</ConnectorCluster>
</IntelligentManagement>
- Web サーバーを始動し、集合にインストールされたアプリケーションへのルーティングを開始します。
- オプション: 動的ルーティングのプロパティーを指定するため、コントローラーの server.xml に <dynamicRouting> エレメントを追加します。
connectorClusterNameプロパティーは、動的ルーティングが集合と関連付ける名前を指定します。connectorClusterName プロパティーが指定されていない場合、集合の名前が使用されます。retryInterval プロパティーは、
接続が失敗した場合にコントローラーへの再接続を行うまでの待機時間を指定します。maxRetries プロパティーは、
失敗した集合コントローラーへの再接続を試行する回数を指定します。
以下に例を示します。
<dynamicRouting maxRetries="4" retryInterval="20" connectorClusterName="collective1"/>
<TraceSpecification name="default" specification=":DEBUG"/>
</dynamicRouting>
生成された
plugin-cfg.xml には、
<ConnectorCluster> プロパティーが含まれます。
<IntelligentManagement>
<TraceSpecification name="default" specification=":DEBUG"/>
<Property name="webserverName" value="webServer1"/>
<ConnectorCluster enabled="true" maxRetries="4" name="collective1" retryInterval="20">
<Property name="uri" value="/ibm/api/dynamicRouting"/>
<Connector host="controller1.acme.com" port="9444" protocol="https">
<Property name="keyring" value="/opt/HTTPServer_Plugins/config/webServer1/plugin-key.kdb"/>
</Connector>
</ConnectorCluster>
</IntelligentManagement>
オプション: 特定の要求がどのように処理されるのかを指定するルーティング・ルールを作成します。 以下を行うようにルーティング・ルールを指定できます。
- 特定の要求を拒否する。
- 特定の要求をリダイレクトする。
- 特定の要求が使用可能なサーバーのサブセットに送付されることを許可する。
- 特定の要求を 1 つのサーバー・セットから別のサーバー・セットにフェイルオーバーする。
『Liberty 動的ルーティングのルーティング・ルール』および『Liberty 動的ルーティングのルーティング・ルールの構成』を参照してください。
タスクの結果
これで、dynamicRouting-1.0 フィーチャーが使用可能になり、Intelligent Management は HTTP 要求を Liberty 集合に動的にルーティングできるようになりました。