16.6.4. 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 ワーカーの設定リファレンス

ノードテンプレートは、デフォルトのノードごとの設定を指定します。ノード設定内のテンプレートを上書きできます。ノードテンプレートの例は、例16.2「workers.properties サンプルファイル」 を参照してください。

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

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

表16.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 に設定します。すべての要求が実際にステートレスでない限り、スティッキーセッションは通常有効にする必要があります。これは、ワーカーごとに設定され、ノードごとに設定されません。そのワーカータイプにより調整されるすべてのノードが影響を受けます。

表16.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)。

例16.2 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/) を参照してください。