A.2. workers.properties
Apache HTTP Server ワーカーノードは、mod_jk
ロードバランサーにマップされるサーブレットコンテナーです。ワーカーノードは JBCS_HOME/httpd/conf/workers.properties
で定義されます。このファイルは、異なるサーブレットコンテナーの場所と、全体で呼び出しが負荷分散される方法を指定します。
この workers.properties
ファイルには、以下の 2 つのセクションが含まれます。
- グローバルプロパティー
- このセクションには、すべてのワーカーに適用されるディレクティブが含まれます。
- ワーカープロパティー
- このセクションには、各ワーカーに適用されるディレクティブが含まれます。
各ノードはワーカープロパティーの命名規則を使用して定義されます。ワーカー名には、小文字、大文字、数字、および特定の特殊文字 (_
, /
) のみを含めることができます。
ワーカープロパティーの構造は 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 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 (プレポスト)。
-
各リクエストをサーバーに送信する前に接続がプローブされることを指定します。
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 台のサーバーに永続化されます (そのサーバーが使用可能な場合)。