Hitachi

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


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

振り分け先となるワーカのリストをPOSTリクエスト振り分けワーカに定義することで,POSTデータサイズでワーカにリクエストを振り分けます。

振り分け先となるPOSTリクエスト転送先ワーカに,POSTデータサイズの上限値を設定して,リクエスト振り分け先を定義します。これによって,特定のホストに,処理に時間が掛かる長大なPOSTデータサイズのリクエストの処理を振り分けられます。リダイレクタは,HTTPリクエスト単位にPOSTデータサイズの上限値で振り分けるので,長大なPOSTデータ以外のリクエストのスループットの低下や,レスポンス時間の低下を防ぐことができます。なお,POSTデータサイズの上限値が設定されている場合は,同じセッションに属するHTTPリクエストであっても,POSTデータサイズの値が優先されます。

〈この項の構成〉

(1) 設定の手順

POSTデータサイズでのリクエスト振り分けは,次の手順で設定します。

  1. workers.propertiesでPOSTリクエスト振り分けワーカ,およびPOSTリクエスト転送先ワーカを定義します。

    POSTリクエスト振り分けワーカの定義

    ワーカ名のリスト,ワーカのタイプ(「post_size_lb」を設定),POSTデータサイズによる振り分けの対象となるワーカのリストなどを設定します。必要に応じて,デフォルトワーカも設定します。

    各POSTリクエスト転送先ワーカの定義

    ワーカのタイプ(「ajp13」を設定),ポート番号,ホスト名,POSTデータサイズの上限値などを設定します。

    標準で提供されるworkers.propertiesには,デフォルト値が定義されています。コメントとして定義されているデフォルトの定義を使用する場合は,該当する行の先頭の「#」を削除してください。

    workers.properties(ワーカ定義ファイル)については,「13.2.4 workers.properties(ワーカ定義ファイル)」を参照してください。

  2. mod_jk.confでURLパターンとワーカのマッピングを定義します。

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

    mod_jk.conf(HTTP Server用リダイレクタ動作定義ファイル)については,「13.2.2 mod_jk.conf(HTTP Server用リダイレクタ動作定義ファイル)」を参照してください。

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

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

(2) workers.propertiesおよびmod_jk.confでの設定

POSTデータサイズでのリクエストの振り分けの設定は,workers.propertiesおよびmod_jk.confで定義します。workers.propertiesおよびmod_jk.confで定義するキーを次の表に示します。

表5‒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キーで指定したワーカの名称を定義します。

ワーカの種類ごとに指定できるキーを次の表に示します。

表5‒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

×

(凡例)○:指定できる。 ×:指定できない。 △:任意に指定できる。

(3) 設定例

POSTデータサイズでのリクエスト振り分けの例を次の図に示します。ここでは,リクエストを限定できない場合を例に説明します。

図5‒13 POSTデータサイズでのリクエスト振り分けの例

[図データ]

この例では,「/examples」以下のリクエストのうち,POSTデータサイズが100メガバイト未満のリクエストをホストA,POSTデータサイズが100メガバイト以上200メガバイト未満のリクエストをホストBに振り分けます。リクエストの振り分け条件に満たないリクエストは,デフォルトワーカに設定したホストAに振り分けます。ホストAのワーカ名は「worker1」,ホストBのワーカ名は「worker2」です。リクエストの振り分け条件については,「5.5.3 リクエストの振り分け条件」を参照してください。

workers.propertiesの例を次に示します。ここでは,POSTリクエスト振り分けワーカ,POSTリクエスト転送先ワーカおよびデフォルトワーカを定義します。POSTデータサイズの上限値は,「worker1」に「100m」,「worker2」に「2048m」(POSTデータサイズの上限値の最大値)を指定します。デフォルトワーカには,「worker1」を指定します。

workers.propertiesの例(Windowsの場合)
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
workers.propertiesの例(UNIXの場合)
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」を指定します。

mod_jk.confの例
JkMount /examples/* postsizelb1
参考

POSTデータサイズの上限値は,httpsd.conf(HTTP Server定義ファイル)のLimitRequestBodyディレクティブでも設定できます。LimitRequestBodyディレクティブの詳細については,マニュアル「HTTP Server」を参照してください。