B.2. workers.properties 指令
workers.properties
文件指令分为全局、强制、连接和负载平衡分类。
worker.properties
全局指令
- worker.list
指定
mod_jk
使用的 worker 名称列表。此列表中的 worker 可用于映射请求。注意不受负载均衡器管理的单个节点配置必须设置为
worker.list=WORKER_NAME
。
worker.properties
的必要指令
- type
指定 worker 的类型,它决定适用于 worker 的指令。默认值为
ajp13
,这是用于 Web 服务器和 Apache HTTP 服务器之间通信的首选工作程序类型。其他值包括
lb
和status
。有关 AJPv13 的详细信息,请参阅 Apache Tomcat 连接器 - 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 worker 的默认监听端口。 - ping_mode
指定针对当前网络运行状况探测连接的条件。
该探测使用空的 AJPv13 数据包
进行 CPing
,并在指定的超时内返回CPong
。您可以使用 指令标志的组合来指定条件。标志不是用逗号分开的。例如,设置了正确的指令标志是
worker.node1.ping_mode=CI
。- c(连接)
-
在连接到服务器后,指定连接被探测一次。您可以使用
connect_timeout
指令指定超时,否则使用ping_timeout
的值。 - P(预置)
-
指定在向服务器发送每个请求之前,连接会被探测。您可以使用
prepost_timeout
指令指定超时,否则使用ping_timeout
的值。 - i(互换)
-
指定在常规的内部维护周期内探测连接。您可以使用
connection_ping_interval
指令指定每个间隔之间的空闲时间,否则使用ping_timeout
的值。 - A(全部)
-
最常用的设置,它指定应用了所有指令标志。有关
\*_timeout
高级指令的详情,请参考 Apache Tomcat 连接器 - 参考指南。
- ping_timeout
-
指定等待
CPing
连接探测回答ping_mode
)。默认值为10000
(毫秒)。
worker.properties 的
负载均衡指令
- lbfactor
指定单个 worker 的负载均衡因素,且只为负载均衡器的成员 worker 指定。
与集群中的其他 worker 相比,这个指令定义了分配给 worker 的 HTTP 请求负载的相对数量。
应用此指令的一个常见示例是您要区分处理能力高于集群中的其他服务器。例如,如果您要求 worker 负载比其他工作程序要花费三倍,请指定
worker。WORKER_NAME.lbfactor=3
。- balance_workers
-
指定负载均衡器必须管理的 worker 节点。该指令可以多次用于同一负载平衡器,由
workers.properties
文件中指定的以逗号分隔的 worker 名称列表组成。 - sticky_session
指定对 SESSION ID 的 worker 的请求是否路由到同一 worker。默认值为
0(
false)。当设置为1
(true)时,会启用负载均衡器持久性。例如,如果您指定了
worker.loadbalancer.sticky_session=0
,则每个请求会在集群中的每个节点之间负载平衡。换句话说,同一会话的不同请求可以根据服务器负载前往不同的服务器。如果您指定了
worker.loadbalancer.sticky_session=1
,每个会话都会持久(已锁定)到一台服务器,直到会话终止为止,前提是该服务器可用。