Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)
振り分け先となるワーカのリストをPOSTリクエスト振り分けワーカに定義することで,POSTデータサイズでワーカにリクエストを振り分けます。
振り分け先となるPOSTリクエスト転送先ワーカに,POSTデータサイズの上限値を設定して,リクエスト振り分け先を定義します。これによって,特定のホストに,処理に時間が掛かる長大なPOSTデータサイズのリクエストの処理を振り分けられます。リダイレクタは,HTTPリクエスト単位にPOSTデータサイズの上限値で振り分けるので,長大なPOSTデータ以外のリクエストのスループットの低下や,レスポンス時間の低下を防ぐことができます。なお,POSTデータサイズの上限値が設定されている場合は,同じセッションに属するHTTPリクエストであっても,POSTデータサイズの値が優先されます。
POSTデータサイズでのリクエスト振り分けは,次の手順で設定します。
POSTデータサイズでのリクエストの振り分けの設定は,workers.propertiesおよびmod_jk.confで定義します。workers.propertiesおよびmod_jk.confで定義するキーを次の表に示します。
表4-10 workers.propertiesおよびmod_jk.confで定義するキー(POSTデータサイズでのリクエストの振り分けの場合)
ファイルの種類 | キー名 | 説明 |
---|---|---|
workers.properties | worker.list | 一つまたは複数のワーカ名のリストを指定します。 |
worker.<ワーカ名>.host | ワーカのホスト名,またはIPアドレスを指定します。 | |
worker.<ワーカ名>.port | ワーカのポート番号を指定します。 | |
worker.<ワーカ名>.type | ワーカのタイプを指定します。POSTリクエスト振り分けワーカには「post_size_lb」を,振り分け対象となるPOSTリクエスト転送先ワーカには「ajp13」を指定します。 | |
worker.<ワーカ名>.post_size_workers | POSTデータサイズによる振り分けの対象となるワーカのリストを指定します。 | |
worker.<ワーカ名>.post_data | リクエストのPOSTデータサイズの上限値(バイト単位)を指定します。 | |
worker.<ワーカ名>.default_worker | リクエストの振り分け先に該当するワーカが,クラスタ構成内のPOSTリクエスト転送先ワーカにない場合に,リクエストを転送するワーカ(デフォルトワーカ)を指定します。 | |
worker.<ワーカ名>.cachesize | リダイレクタで再利用するワーカのコネクション数を指定します。 Windowsの場合にだけ指定できます。 |
|
worker.<ワーカ名>.receive_timeout | 通信タイムアウト値を指定します。 | |
worker.<ワーカ名>.delegate_error_code | エラーページの作成をWebサーバに委任する場合に利用するエラーステータスコードを指定します。 | |
mod_jk.conf | JkMount | URLパターンと,worker.listで指定されているワーカのどれかとの組み合わせを指定します。 |
注 <ワーカ名>には,worker.listキー,またはworker.<ワーカ名>.post_size_workersキーで指定したワーカの名称を定義します。
ワーカの種類ごとに指定できるキーを次の表に示します。
表4-11 ワーカの種類ごとに指定できるキー
キー名 | ワーカの種類(worker.<ワーカ名>.typeキーの指定値) | |
---|---|---|
POSTリクエスト振り分けワーカ (「post_size_lb」を指定) |
POSTリクエスト転送先ワーカ (「ajp13」を指定) |
|
worker.<ワーカ名>.host | × | ○ |
worker.<ワーカ名>.port | × | ○ |
worker.<ワーカ名>.type | ○ | ○ |
worker.<ワーカ名>.post_size_workers | ○ | × |
worker.<ワーカ名>.post_data | × | ○ |
worker.<ワーカ名>.default_worker | △ | × |
worker.<ワーカ名>.cachesize | × | △ |
worker.<ワーカ名>.receive_timeout | × | △ |
worker.<ワーカ名>.delegate_error_code | × | △ |
(凡例)○:指定できる。 ×:指定できない。 △:任意に指定できる。
POSTデータサイズでのリクエスト振り分けの例を次の図に示します。ここでは,リクエストを限定できない場合を例に説明します。
図4-13 POSTデータサイズでのリクエスト振り分けの例
この例では,「/examples」以下のリクエストのうち,POSTデータサイズが100メガバイト未満のリクエストをホストA,POSTデータサイズが100メガバイト以上200メガバイト未満のリクエストをホストBに振り分けます。リクエストの振り分け条件に満たないリクエストは,デフォルトワーカに設定したホストAに振り分けます。ホストAのワーカ名は「worker1」,ホストBのワーカ名は「worker2」です。リクエストの振り分け条件については,「4.5.3 リクエストの振り分け条件」を参照してください。
workers.propertiesの例を次に示します。ここでは,POSTリクエスト振り分けワーカ,POSTリクエスト転送先ワーカおよびデフォルトワーカを定義します。POSTデータサイズの上限値は,「worker1」に「100m」,「worker2」に「2048m」(POSTデータサイズの上限値の最大値)を指定します。デフォルトワーカには,「worker1」を指定します。
worker.list=postsizelb1 worker.postsizelb1.post_size_workers=worker1,worker2 worker.postsizelb1.type=post_size_lb worker.postsizelb1.default_worker=worker1 worker.worker1.port=8007 worker.worker1.host=hostA worker.worker1.type=ajp13 worker.worker1.cachesize=64 worker.worker1.post_data=100m worker.worker2.port=8007 worker.worker2.host=hostB worker.worker2.type=ajp13 worker.worker2.cachesize=64 worker.worker2.post_data=2048m
worker.list=postsizelb1 worker.postsizelb1.post_size_workers=worker1,worker2 worker.postsizelb1.type=post_size_lb worker.postsizelb1.default_worker=worker1 worker.worker1.port=8007 worker.worker1.host=hostA worker.worker1.type=ajp13 worker.worker1.post_data=100m worker.worker2.port=8007 worker.worker2.host=hostB worker.worker2.type=ajp13 worker.worker2.post_data=2048m
mod_jk.confの例を次に示します。ここでは,POSTリクエスト振り分けワーカ「postsizelb1」を指定します。
JkMount /examples/* postsizelb1
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.