5.3.3 実行環境での設定(Smart Composer機能を使用する場合)
HTTPリクエストに含まれるURLパターンによってリクエストを振り分けることで,特定の処理だけをWebコンテナに実行させたり,複数のWebコンテナに処理内容に応じて振り分けたりできます。なお,URLパターンによる振り分けは,原則としてWebアプリケーション単位で振り分けます。URLパターンは,リダイレクタの動作として定義します。
- 〈この項の構成〉
(1) 設定の手順
URLパターンによるリクエストの振り分けは,次の手順で設定します。
-
簡易構築定義ファイルで,ワーカ,およびURLパターンとワーカのマッピングを定義します。
ワーカ名のリスト,ワーカのタイプ(「ajp13」を設定),ポート番号,ホスト名などを設定します。
また,すでにマッピングが定義されている場合は,定義を削除,または置き換えてください。
-
Webサーバの環境を設定して,Webサーバを再起動します。
Webサーバの設定については,「付録D HTTP Serverの設定に関する注意事項」を参照してください。
(2) 簡易構築定義ファイルでの設定
URLパターンによるリクエストの振り分けの定義は,簡易構築定義ファイルで,論理Webサーバ(web-server)の<configuration>タグ内に定義します。
簡易構築定義ファイルでの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で指定されているワーカのどれかとの組み合わせを指定します。 |
簡易構築定義ファイルおよびパラメタについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.3 簡易構築定義ファイル」を参照してください。
(3) 設定例
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> :