D.2. Workers.properties ディレクティブ

workers.properties ファイルのディレクティブは、グローバル、必須、接続、および負荷分散の分類に分けられます。

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

worker.list

mod_jk が使用するワーカー名のリストを指定します。このリストのワーカーは、要求をマップするために利用できます。

注記

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

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

type

ワーカーに適用されるディレクティブを決定するワーカーのタイプを指定します。デフォルト値は ajp13 です。これは、Web サーバーと Apache HTTP Server 間の通信に選択するワーカータイプです。

その他の値には、lb および status が含まれます。

AJPv13 の詳細は、Apache Tomcat Connector - AJP Protocol Reference を参照してください。

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

host

ワーカーのホスト名または IP アドレス。ワーカーノードは ajp13 プロトコルスタックをサポートする必要があります。デフォルト値は localhost です。

ホスト名または IP アドレスの後にポート番号を追加すると、port ディレクティブを host ディレクティブの一部として指定できます。たとえば、worker.node1.host=192.168.2.1:8009 または worker.node1.host=node1.example.com:8009 のようになります。

port
定義されたプロトコルリクエストをリッスンしているバックエンドサーバーインスタンスのポート番号。デフォルト値は 8009 で、AJPv13 ワーカーのデフォルトのリッスンポートです。
ping_mode

現在のネットワークの正常性に対して接続がプローブされる条件を指定します。

プローブは、CPing に空の AJPv13 パケットを使用し、指定のタイムアウト内で CPong を返すことを想定します。

ディレクティブフラグの組み合わせを使用して条件を指定します。フラグはコンマ区切りではありません。たとえば、正しいディレクティブフラグセットは worker.node1.ping_mode=CI です。

C - Connect (接続)。
サーバーへの接続後に接続がプローブされるよう指定します。connect_timeout ディレクティブを使用してタイムアウトを指定します。指定しない場合は、ping_timeout の値が使用されます。
P (プレポスト)
各リクエストをサーバーに送信する前に接続がプローブされることを指定します。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 台のサーバーに永続化されます (そのサーバーが使用可能な場合)。