Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)

[目次][用語][索引][前へ][次へ]

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

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

<この項の構成>
(1) 設定の手順
(2) 簡易構築定義ファイルでの設定
(3) 設定例

(1) 設定の手順

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

  1. 簡易構築定義ファイルで,ワーカ,およびURLパターンとワーカのマッピングを定義します。
    ワーカ名のリスト,ワーカのタイプ(「ajp13」を設定),ポート番号,ホスト名などを設定します。
    また,すでにマッピングが定義されている場合は,定義を削除,または置き換えてください。
  2. Webサーバの環境を設定して,Webサーバを再起動します。
    Webサーバの設定については,「付録B HTTP Serverの設定に関する注意事項」を参照してください。

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

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

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

表4-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.6 簡易構築定義ファイル」を参照してください。

(3) 設定例

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

図4-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>
: