A.37. mod_jk ワーカープロパティー

workers.properties ファイルは mod_jk がクライアント要求を渡すワーカーの動作を定義します。workers.properties ファイルは、異なるサーブレットコンテナーが存在する場所と、ワークロードをアプリケーションサーバーすべてで分散する方法を定義します。

プロパティーの一般的な構造は worker.WORKER_NAME.DIRECTIVE です。WORKER_NAME は、JBoss EAP undertow サブシステムで設定された instance-id と一致しなければならない一意な名前です。DIRECTIVE はワーカーに適用される設定です。

Apache mod_jk ロードバランサーの設定リファレンス

テンプレートはデフォルトのロードバランサーごとの設定を指定します。ロードバランサーの設定内でテンプレートを上書きできます。

表A.139 グローバルプロパティー

プロパティー説明

worker.list

mod_jk によって使用されるワーカー名のコンマ区切りリスト。

表A.140 必須ディレクティブ

プロパティー説明

type

ワーカーのタイプ。デフォルトのタイプは ajp13 です。他の可能な値は ajp14lbstatus です。これらのディレクティブの詳細は、https://tomcat.apache.org/connectors-doc/reference/workers.html の Apache Tomcat Connectors Reference を参照してください。

表A.141 負荷分散ディレクティブ

プロパティー説明

balance_workers

ロードバランサーが管理する必要があるワーカーノードを指定します。同じロードバランサーにディレクティブを複数回使用できます。コンマ区切りのワーカーノード名のリストで設定されます。

sticky_session

同じセッションからのリクエストを常に同じワーカーにルーティングするかどうかを指定します。デフォルトは 1 で、スティッキーセッションが有効になります。スティッキーセッションを無効にするには 0. を設定します。すべてのリクエストが実際にステートレスである場合を除き、スティッキーセッションは通常有効にする必要があります。

表A.142 接続ディレクティブ

プロパティー説明

host

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

port

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

ping_mode

ネットワークの状態に対して接続がプローブされる条件。プローブは CPing に空の AJP13 パケットを使用し、応答で CPong を想定します。ディレクティブフラグの組み合わせを使用して条件を指定します。フラグはコンマまたはスペースで区切られません。ping_mode は C、P、I、および 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 倍の負荷を割り当てるには、worker.my_worker.lbfactor=3 のように 3 を設定します。

以下の例は、ポート 8009 でリッスンする node1 および node2 の 2 つのワーカーノードの間でスティッキーセッションを用いて負荷を分散します。

例: workers.properties ファイル

# Define list of workers that will be used for mapping requests
worker.list=loadbalancer,status

# Define Node1
# modify the host as your host IP or DNS name.
worker.node1.port=8009
worker.node1.host=node1.mydomain.com
worker.node1.type=ajp13
worker.node1.ping_mode=A
worker.node1.lbfactor=1

# Define Node2
# modify the host as your host IP or DNS name.
worker.node2.port=8009
worker.node2.host= node2.mydomain.com
worker.node2.type=ajp13
worker.node2.ping_mode=A
worker.node2.lbfactor=1

# Load-balancing behavior
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2
worker.loadbalancer.sticky_session=1

# Status worker for managing load balancer
worker.status.type=status

Apache mod_jk の設定の詳細は、本書の範囲外です。Apache のドキュメント を参照してください。