19.6.5. Apache Mod_jk ワーカーの設定リファレンス

workers.properties ファイルは mod_jk がクライアント要求を渡すワーカーノードの動作を定義します。Red Hat Enterprise Linux では、このファイルは /etc/httpd/conf/workers.properties にあります。workers.properties ファイルは、異なるサーブレットコンテナーが存在する場所と、負荷をコンテナー全体で分散する方法を定義します。
この設定は 3 つのセクションに分かれます。最初のセクションは、すべてのワーカーノードに適用されるグローバルプロパティーを扱います。2 番目のセクションには、特定のワーカーに適用される設定が含まれます。3 番目のセクションには、ワーカーで調整される特定のノードに設定が含まれます。
プロパティーの一般的な構造は worker.WORKER_NAME.DIRECTIVE です。WORKER_NAME はワーカーの一意な名前で、DIRECTIVE はワーカーに適用される設定になります。
Apache mod_jk ワーカーの設定リファレンス

ノードテンプレートは、デフォルトの各ノードの設定を指定します。ノード設定内のテンプレート自体を上書きできます。ノードテンプレートの例は、例19.5「workers.properties ファイルの例」 で参照できます。

表19.11 グローバルプロパティー

プロパティー説明
worker.listmod_jk で使用されるワーカー名のリスト。これらのワーカーは要求を受信できます。

表19.12 各ワーカーのプロパティー

プロパティー説明
type
ワーカーのタイプ。デフォルトのタイプは ajp13 です。他の可能な値は ajp14lbstatus です。
これらのディレクティブの詳細については、http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html の Apache Tomcat Connector AJP Protocol Reference を参照してください。
balance_workers
ロードバランサーが管理する必要があるワーカーノードを指定します。同じロードバランサーに対してディレクティブを複数回使用できます。ディレクティブは、カンマで区切られたワーカー名のリストから構成されます。これはワーカーごとに設定され、ノードごとには設定されません。このワーカータイプにより調整されるすべてのノードが影響を受けます。
sticky_session
同じセッションからの要求を常に同じワーカーにルーティングするかどうかを指定します。デフォルト値は 0 であり、スティッキーセッションが無効になります。スティッキーセッションを有効にするには、1 に設定します。すべての要求が実際にステートレスでない限り、スティッキーセッションは通常有効にする必要があります。これは、ワーカーごとに設定され、ノードごとに設定されません。そのワーカータイプにより調整されるすべてのノードが影響を受けます。

表19.13 各ノードのプロパティー

プロパティー説明
host
ワーカーのホスト名または IP アドレス。ワーカーノードは ajp プロトコルスタックをサポートする必要があります。デフォルト値は localhost です。
port
定義されたプロトコル要求をリッスンしているリモートサーバーインスタンスのポート番号。デフォルト値は、AJP13 ワーカーのデフォルトリッスンポートである 8009 です。AJP14 ワーカーのデフォルト値は 8011 です。
ping_mode
ネットワークの状態に対して接続がプローブされる条件。プローブは CPing に空の AJP13 パケットを使用し、応答で CPong を想定します。ディレクティブフラグの組み合わせを使用して条件を指定します。フラグはコンマまたはスペースで区切られません。ping_mode は、CPI、および A の任意の組み合わせです。
  • C - Connect (接続)。サーバーへの接続後に 1 回だけ接続をプローブします。connect_timeout 値を使用してタイムアウトを指定します。指定しないと、値 ping_timeout が使用されます。
  • P - Prepost (プレポスト)。各要求をサーバーに送信する前に接続をプローブします。prepost_timeout ディレクティブを使用してタイムアウトを指定します。指定しないと、値 ping_timeout が使用されます。
  • I - Interval (間隔)。connection_ping_interval (存在する場合) で指定された間隔で接続をプローブします。指定しないと、値 ping_timeout が使用されます。
  • A - All (すべて)。すべての接続プローブを使用することを指定する CPI のショートカットです。
ping_timeout、connect_timeout、prepost_timeout、connection_ping_interval
上記の接続プローブ設定のタイムアウト値。値はミリ秒単位で指定され、ping_timeout のデフォルト値は 10000 です。
lbfactor
各ワーカーの負荷分散係数を指定し、ロードバランサーのメンバーワーカーにのみ適用します。これは、より強力なサーバーにより多くの負荷を割り当てる場合に役に立ちます。ワーカーにデフォルトの 3 倍の負荷を割り当てるには、これを 3 に設定します (worker.my_worker.lbfactor=3)。

例19.5 workers.properties ファイルの例

worker.list=node1, node2, node3
     
worker.balancer1.sticky_sessions=1
worker.balancer1.balance_workers=node1
worker.balancer2.sticky_session=1
worker.balancer2.balance_workers=node2,node3

worker.nodetemplate.type=ajp13
worker.nodetemplate.port=8009

worker.node1.template=nodetemplate
worker.node1.host=localhost
worker.node1.ping_mode=CI
worker.node1.connection_ping_interval=9000
worker.node1.lbfactor=1

worker.node2.template=nodetemplate
worker.node2.host=192.168.1.1
worker.node2.ping_mode=A

worker.node3.template=nodetemplate
worker.node3.host=192.168.1.2
Apache mod_jk の設定の詳細については、本書の範囲外です。詳細については、Apache ドキュメンテーション (http://tomcat.apache.org/connectors-doc/) を参照してください。