D.2. workers.properties 指令
worker.properties
文件指令被分成全局、强制、连接和负载平衡分类。
worker.properties 的全局
指令
- worker.list
指定
mod_jk
使用的 worker 名称列表。此列表中的 worker 可用于将请求映射到。注意不是由负载均衡器管理的单一节点配置必须设置为
worker.list=WORKER_NAME
。
worker.properties 的
强制指令
- type
指定 worker 类型,它决定适用于 worker 的指令。默认值为
ajp13
,这是为 Web 服务器和 Apache HTTP 服务器之间的通信选择的首选 worker 类型。其他值包括
lb
和status
。有关 AJPv13 的详细信息,请参阅 Apache Tomcat Connector - AJP 协议参考。
worker.properties
的连接指令
- host
worker 的主机名或 IP 地址。worker 节点必须支持 ajp13 协议堆栈。默认值为
localhost
。您可以通过在主机名或 IP 地址后附加端口号来指定
port
指令作为 host 指令的一部分。例如:worker.node1.host=192.168.2.1:8009
或worker.node1.host=node1.example.com:8009
。- 端口
-
侦听定义的协议请求的远程服务器实例的端口号。默认值为
8009
,这是 AJPv13 工作程序的默认监听端口。 - ping_mode
指定连接在当前网络健康下探测到的条件。
该探测对
CPing
使用一个空的 AJPv13 数据包,并期望在一个特定的超时期间内,在返回中有一个CPong
。您可以使用指令标志的组合来指定条件。标志不用逗号分开。例如,设置了正确的指令标志是
worker.node1.ping_mode=CI
。- c (连接)
-
指定连接在连接到服务器后被探测到一次。您可以使用
connect_timeout
指令指定超时,否则会使用ping_timeout
的值。 - P (prepost)
-
指定连接在向服务器发送每个请求前被探测到。您可以使用
prepost_timeout
指令指定超时,否则会使用ping_timeout
的值。 - i (interval)
-
指定连接在常规内部维护周期内被探测到。您可以使用
connection_ping_interval
指令指定每个间隔之间的空闲时间,否则会使用ping_timeout
的值。 - A (all)
-
最常见的设置,它指定所有指令标志都已应用。有关
\*_timeout
高级指令的详情,请查看 Apache Tomcat Connector - 参考指南。
- ping_timeout
-
指定对一个
CPing
连接侦测的CPong
回答的时间(请参阅ping_mode
)。默认值为10000
(毫秒)。
worker.properties 的
负载均衡指令
- lbfactor
指定单个 worker 的负载均衡因素,并只为负载均衡器的成员 worker 指定。
与集群中的其他 worker 相比,这个指令定义了分配给 worker 的 HTTP 请求负载的相对数量。
此指令应用的一个常见示例是,您希望将服务器与集群中的其他进程更多的处理能力区分开来。例如,如果您需要 worker 在负载超过其他 worker 三次,请指定
worker。WORKER_NAME.lbfactor=3
。- balance_workers
-
指定负载均衡器必须管理的 worker 节点。该指令可以多次用于同一负载均衡器,它由 worker
.properties
文件中指定的、以逗号分隔的 worker 名称列表组成。 - sticky_session
指定是否将带有 SESSION ID 的 worker 请求路由到同一 worker。默认值为
0
(false)。当设置为1
(true)时,启用负载均衡器持久性。例如,如果您指定了
worker.loadbalancer.sticky_session=0
,则每个请求在集群中的每个节点之间进行负载均衡。换句话说,同一会话的不同请求可以根据服务器负载访问不同的服务器。如果您指定了
worker.loadbalancer.sticky_session=1
,则每个会话都会保留(锁定)到一个服务器,直到会话终止为止,提供该服务器可用。