振り分け先となるワーカのリストをPOSTリクエスト振り分けワーカに定義することで,POSTデータサイズでワーカにリクエストを振り分けます。
振り分け先となるPOSTリクエスト転送先ワーカに,POSTデータサイズの上限値を設定して,リクエスト振り分け先を定義します。これによって,特定のホストに,処理に時間が掛かる長大なPOSTデータサイズのリクエストの処理を振り分けられます。リダイレクタは,HTTPリクエスト単位にPOSTデータサイズの上限値で振り分けるので,長大なPOSTデータ以外のリクエストのスループットの低下や,レスポンス時間の低下を防ぐことができます。なお,POSTデータサイズの上限値が設定されている場合は,同じセッションに属するHTTPリクエストであっても,POSTデータサイズの値が優先されます。
POSTデータサイズでのリクエスト振り分けは,次の手順で設定します。
POSTデータサイズでのリクエスト振り分けの例を次の図に示します。ここでは,リクエストを限定できない場合を例に説明します。
図3-14 POSTデータサイズでのリクエスト振り分けの例
この例では,「/examples」以下のリクエストのうち,POSTデータサイズが100メガバイト未満のリクエストをホストA,POSTデータサイズが100メガバイト以上200メガバイト未満のリクエストをホストBに振り分けます。リクエストの振り分け条件に満たないリクエストは,デフォルトワーカに設定したホストAに振り分けます。ホストAのワーカ名は「worker1」,ホストBのワーカ名は「worker2」です。リクエストの振り分け条件については,「3.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