Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


5.3.3 実行環境での設定(Smart Composer機能を使用する場合)

HTTPリクエストに含まれるURLパターンによってリクエストを振り分けることで,特定の処理だけをWebコンテナに実行させたり,複数のWebコンテナに処理内容に応じて振り分けたりできます。なお,URLパターンによる振り分けは,原則としてWebアプリケーション単位で振り分けます。URLパターンは,リダイレクタの動作として定義します。

〈この項の構成〉

(1) 設定の手順

URLパターンによるリクエストの振り分けは,次の手順で設定します。

  1. 簡易構築定義ファイルで,ワーカ,およびURLパターンとワーカのマッピングを定義します。

    ワーカ名のリスト,ワーカのタイプ(「ajp13」を設定),ポート番号,ホスト名などを設定します。

    また,すでにマッピングが定義されている場合は,定義を削除,または置き換えてください。

  2. Webサーバの環境を設定して,Webサーバを再起動します。

    Webサーバの設定については,「付録D HTTP Serverの設定に関する注意事項」を参照してください。

(2) 簡易構築定義ファイルでの設定

URLパターンによるリクエストの振り分けの定義は,簡易構築定義ファイルで,論理Webサーバ(web-server)の<configuration>タグ内に定義します。

簡易構築定義ファイルでのURLパターンによるリクエストの振り分けの定義について次の表に示します。

表5‒5 簡易構築定義ファイルでのURLパターンによるリクエストの振り分けの定義

分類

パラメタ

説明

ワーカの定義

worker.list

一つまたは複数のワーカ名のリストを指定します。

worker.<ワーカ名>.host

ワーカのホスト名,またはIPアドレスを指定します。

worker.<ワーカ名>.port

ワーカのポート番号を指定します。

worker.<ワーカ名>.type

ワーカのタイプ(ajp13,lbまたはpost_size_lb)を指定します。

worker.<ワーカ名>.cachesize

リダイレクタで再利用するワーカのコネクション数を指定します。

Windowsの場合にだけ指定できます。

worker.<ワーカ名>.receive_timeout

通信タイムアウト値を指定します。

worker.<ワーカ名>.delegate_error_code

エラーページの作成をWebサーバに委任する場合に利用するエラーステータスコードを指定します。

URLパターンとワーカのマッピングの定義

JkMount

URLパターンと,worker.listで指定されているワーカのどれかとの組み合わせを指定します。

注 <ワーカ名>には,worker.listパラメタで指定したワーカの名称を定義します。

簡易構築定義ファイルおよびパラメタについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.3 簡易構築定義ファイル」を参照してください。

(3) 設定例

URLパターンでのリクエスト振り分けの例を次の図に示します。

図5‒5 URLパターンでのリクエスト振り分けの例

[図データ]

この例では,ホストAにはWebアプリケーション「app1」,ホストBにはWebアプリケーション「app2」がそれぞれデプロイされています。処理したいWebアプリケーション名をリクエストのURLパターンに含めることで,「/app1/*」というURLパターンを持つリクエストはホストAで,「/app2/*」というURLパターンを持つリクエストはホストBで処理できるようにします。ホストAのワーカ名は「worker1」,ホストBのワーカ名は「worker2」です。

簡易構築定義ファイルの例を次に示します。ここでは,複数のWebコンテナへリクエストを振り分けるので,Webサーバに登録したリダイレクタに,複数のWebコンテナのワーカを振り分け先として指定します。また,「/app1/*」というURLパターンと「worker1」,「/app2/*」というURLパターンと「worker2」とをマッピングします。

なお,この構成を実現するためには,複数のWebシステムに分割して構築する必要があります。

簡易構築定義ファイルの例
:
<param>
  <param-name>JkMount</param-name>
  <param-value>/app1/* worker1</param-value>
  <param-value>/app2/* worker2</param-value>
</param>
<param>
  <param-name>worker.list</param-name>
  <param-value>worker1,worker2</param-value>
</param>
<param>
  <param-name>worker.worker1.port</param-name>
  <param-value>8007</param-value>
</param>
<param>
  <param-name>worker.worker1.host</param-name>
  <param-value>hostA</param-value>
</param>
<param>
  <param-name>worker.worker1.type</param-name>
  <param-value>ajp13</param-value>
</param>
<param>
  <param-name>worker.worker1.cachesize</param-name>
  <param-value>64</param-value>
</param>
<param>
  <param-name>worker.worker2.port</param-name>
  <param-value>8007</param-value>
</param>
<param>
  <param-name>worker.worker2.host</param-name>
  <param-value>hostB</param-value>
</param>
<param>
  <param-name>worker.worker2.type</param-name>
  <param-value>ajp13</param-value>
</param>
<param>
  <param-name>worker.worker2.cachesize</param-name>
  <param-value>64</param-value>
</param>
: