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

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

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

振り分け先となるワーカのリストをロードバランサに定義することで,ラウンドロビン方式でワーカにリクエストを振り分けます。

振り分け先となる各ワーカに負荷分散値を設定して,リクエスト振り分けの比率を定義すると,ホストごとの負荷の割合を調整できます。リダイレクタは,この比率でHTTPリクエスト単位にラウンドロビンでリクエストを振り分けるので,比率が高いワーカほど転送されるリクエストの割合が多くなります。ただし,同じセッションに属するHTTPリクエストは前回と同じワーカに振り分けられます。

<この項の構成>
(1) 設定の手順
(2) workers.propertiesおよびmod_jk.confでの設定
(3) 設定例

(1) 設定の手順

ラウンドロビン方式によるリクエスト振り分けは,次の手順で設定します。

  1. workers.propertiesでロードバランサ,およびワーカを定義します。
    ロードバランサの定義
    ワーカ名のリスト,ワーカのタイプ(「lb」を設定),負荷分散の対象となるワーカのリストなどを設定します。
    各ワーカの定義
    ワーカのタイプ(「ajp13」を設定),ポート番号,ホスト名,負荷分散値などを設定します。
    標準で提供されるworkers.propertiesには,デフォルト値が定義されています。コメントとして定義されているデフォルトの定義を使用する場合は,該当する行の先頭の「#」を削除してください。
    workers.properties(ワーカ定義ファイル)については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「9.5 workers.properties(ワーカ定義ファイル)」を参照してください。
  2. mod_jk.confでURLパターンとワーカのマッピングを定義します。
    すでにマッピングが定義されている場合は,定義を削除,または置き換えてください。
    mod_jk.conf(HTTP Server用リダイレクタ動作定義ファイル)については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「9.3 mod_jk.conf(HTTP Server用リダイレクタ動作定義ファイル)」を参照してください。
  3. Webサーバの環境を設定して,Webサーバを再起動します。
    Webサーバの設定については,「付録B HTTP Serverの設定に関する注意事項」を参照してください。
(a) 注意事項
(b) ディレクティブの指定例
 
StartServers 256
MaxClients 256
MaxSpareServers 256
MaxRequestsPerChild 10000
 

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

ラウンドロビン方式によるリクエストの振り分けの設定は,workers.propertiesおよびmod_jk.confで定義します。workers.propertiesおよびmod_jk.confで定義するキーを次の表に示します。

表4-7 workers.propertiesおよびmod_jk.confで定義するキー(ラウンドロビン方式によるリクエストの振り分けの場合)

ファイルの種類 キー名 説明
workers.properties worker.list 一つまたは複数のワーカ名のリストを指定します。
worker.<ワーカ名>.host ワーカのホスト名,またはIPアドレスを指定します。
worker.<ワーカ名>.port ワーカのポート番号を指定します。
worker.<ワーカ名>.type ワーカのタイプを指定します。ロードバランサには「lb」を,負荷分散の対象となるワーカには「ajp13」を指定します。
worker.<ワーカ名>.balanced_workers 負荷分散の対象となるワーカのリストを指定します。
worker.<ワーカ名>.lbfactor 負荷分散値を指定します。
worker.<ワーカ名>.cachesize リダイレクタで再利用するワーカのコネクション数を指定します。
Windowsの場合にだけ指定できます。
worker.<ワーカ名>.receive_timeout 通信タイムアウト値を指定します。
worker.<ワーカ名>.delegate_error_code エラーページの作成をWebサーバに委任する場合に利用するエラーステータスコードを指定します。
mod_jk.conf JkMount URLパターンと,worker.listで指定されているワーカのどれかとの組み合わせを指定します。

注 <ワーカ名>には,worker.listキー,またはworker.<ワーカ名>.balanced_workersキーで指定したワーカの名称を定義します。


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

表4-8 ワーカの種類ごとに指定できるキー

キー名 ワーカの種類(worker.<ワーカ名>.typeキーの指定値)
ロードバランサ
(「lb」を指定)
ワーカ
(「ajp13」を指定)
worker.<ワーカ名>.host ×
worker.<ワーカ名>.port ×
worker.<ワーカ名>.type
worker.<ワーカ名>.balanced_workers ×
worker.<ワーカ名>.lbfactor ×
worker.<ワーカ名>.cachesize ×
worker.<ワーカ名>.receive_timeout ×
worker.<ワーカ名>.delegate_error_code ×

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


(3) 設定例

ラウンドロビン方式によるリクエスト振り分けの例を次の図に示します。

図4-8 ラウンドロビン方式によるリクエスト振り分けの例

[図データ]

この例では,「/examples」以下のリクエストがホストA,ホストBに同じ比率で振り分けます。ホストAのワーカ名は「worker1」,ホストBのワーカ名は「worker2」です。

workers.propertiesの例を次に示します。ここでは,ロードバランサとワーカを定義します。リクエストを同じ比率で振り分けるので,「worker1」と「worker2」の負荷分散値はどちらも「1」を指定します。

workers.propertiesの例(Windowsの場合)
worker.list=loadbalancer1
 
worker.loadbalancer1.balanced_workers=worker1,worker2
worker.loadbalancer1.type=lb
 
worker.worker1.port=8007
worker.worker1.host=hostA
worker.worker1.type=ajp13
worker.worker1.cachesize=64
worker.worker1.lbfactor=1
 
worker.worker2.port=8007
worker.worker2.host=hostB
worker.worker2.type=ajp13
worker.worker2.cachesize=64
worker.worker2.lbfactor=1
 

workers.propertiesの例(UNIXの場合)
worker.list=loadbalancer1
 
worker.loadbalancer1.balanced_workers=worker1,worker2
worker.loadbalancer1.type=lb
 
worker.worker1.port=8007
worker.worker1.host=hostA
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
 
worker.worker2.port=8007
worker.worker2.host=hostB
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
 

mod_jk.confの例を次に示します。ここでは,ロードバランサ名「loadbalancer1」を指定します。

mod_jk.confの例
JkMount /examples/* loadbalancer1