付録A 参照:workers.properties

Apache httpd Server ワーカーノードは mod_jk ロードバランサにマップされる Servlet コンテナです。ワーカーノードは HTTPD_DIST/conf/workers.properties で定義されます。このファイルは、さまざまな Servlet コンテナが存在する場所とコールが負荷分散される方法を指定します。
workers.properties ファイルには、以下の 2 つのセクションが含まれます。
Global Properties
このセクションには、すべてのワーカーに適用されるディレクティブが含まれます。
Worker Properties
このセクションには、個別のワーカーに適用されるディレクティブが含まれます。
各ノードは Worker Properties の命名規則を使用して定義されます。ワーカー名には、英数字のみを使用でき、文字は [a-z][A-Z][0-9][_-/] に制限されます。
ワーカープロパティの構造は worker.worker_name.directive です。
worker
すべてのワーカープロパティで同一の接頭辞。
worker_name
ワーカーに与えられた任意の名前 (node1、node_01、Node_1 など)。
directive
必要な特定のディレクティブ。
ワーカーノードを設定するのに必要な主なディレクティブについて以下で説明します。

注記

worker.properties 設定ディレクティブの完全なリストについては、『Apache Tomcat Connector - Reference Guide』を参照してください。

worker.properties グローバルディレクティブ

worker.list
mod_jk により使用されたワーカー名のリストを指定します。このリストのワーカーは要求をマップするために使用できます。

注記

ロードバランサにより管理されない単一ノード設定は worker.list=[worker name] に設定する必要があります。

workers.properties 必須ディレクティブ

type
ワーカーのタイプを指定し、ワーカーに適用可能なディレクティブを決定します。デフォルト値は ajp13 であり、Web サーバーと Apache httpd サーバー間の通信に選択する場合に推奨されるワーカータイプです。
他の値には ajp14lbstatus などがあります。
ajp13 の詳細については、『The Apache Tomcat Connector - AJP Protocol Reference』を参照してください。

workers.properties 接続ディレクティブ

host
ワーカーのホスト名または IP アドレス。ワーカーノードは ajp13 プロトコルスタックをサポートする必要があります。デフォルト値は localhost です。
ホスト名または IP アドレスの後にポート番号を付加することによりホストディレクティブの一分として port ディレクティブを指定できます (たとえば、worker.node1.host=192.168.2.1:8009worker.node1.host=node1.example.com:8009 など)。
port
定義されたプロトコル要求をリッスンするリモートサーバーインスタンスのポート番号。デフォルト値は、AJP13 ワーカーのデフォルトリッスンポートである 8009 です。AJP14 ワーカーを使用する場合は、このバルブを 8011 に設定する必要があります。
ping_mode
現在のネットワークの状態を調べるために接続がプローブされる条件を指定します。
プローブは CPing に空の AJP13 パケットを使用し、指定されたタイムアウト内に返答として CPong を期待します。
ディレクティブフラグの組み合わせを使用して条件を指定します。フラグはカンマ区切りではありません。たとえば、適切なディレクティブフラグセットは worker.node1.ping_mode=CI です。
C (connect)
サーバーの接続後に条件がプローブされることを指定します。connect_timeout ディレクティブを使用してタイムアウトを指定します。指定しない場合は、ping_timeout の値が使用されます。
P (prepost)
サーバーに各要求を送信した後に条件がプローブされることを指定します。prepost_timeout ディレクティブを使用してタイムアウトを指定します。指定しない場合は、ping_timeout の値が使用されます。
I (interval)
通常の内部保守サイクルの間に接続がプローブされることを指定します。connection_ping_interval ディレクティブを使用して各間隔の間のアイドル時間を指定します。指定しない場合は、ping_timeout の値が使用されます。
A (all)
すべてのディレクティブが適用されることを指定する最も一般的な設定。高度な *_timeout ディレクティブについては、『Apache Tomcat Connector - Reference Guide』を参照してください。
ping_timeout
CPing 接続プローブに対する CPong 回答を待機する時間を指定します (ping_mode を参照)。デフォルト値は 10000 (ミリ秒) です。

worker.properties 負荷分散ディレクティブ

lbfactor
個々のワーカーに対する負荷分散要素を指定します。ロードバランサのメンバーワーカーに対してのみ指定されます。
このディレクティブは、ワーカーに分散された HTTP 要求負荷とクラスタ内の他のワーカーの相対的な量を定義します。
このディレクティブが適用される一般的な例は、クラスタ内の他のサーバーよりも処理パワーが大きいサーバーを区別する場合です。たとえば、ワーカーが他のワーカーよりも 3 倍の負荷を引き受ける必要がある場合は、worker.worker name.lbfactor=3 を指定します。
balance_workers
ロードバランサが管理する必要があるワーカーノードを指定します。ディレクティブは同じロードバランサに対して複数回使用でき、workers.properties ファイルで指定されたカンマ区切りのワーカー名リストから構成されます。
sticky_session
SESSION ID を持つワーカーに対する要求が同じワーカーに再びルーティングされるかどうかを指定します。デフォルト値は 0 (false) です。1 (true) に設定されると、ロードバランサの永続性が有効になります。
たとえば、worker.loadbalancer.sticky_session=0 を指定する場合、各要求はクラスタ内の各ノード間で負荷分散されます。つまり、同じセッションの異なる要求はサーバーの負荷に基づいて異なるサーバーに送信されます。
worker.loadbalancer.sticky_session=1 の場合、各セッションはセッションが終了するまで 1 つのサーバーに永続化 (ロック) され、そのサーバーが利用可能になります。