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 服务器之间的通信的首选 worker 类型。其他值包括
lb和status。有关 AJPv13 的详情,请查看 Apache Tomcat 连接器 - AJP 协议参考。
worker.properties 的连接指令
- 主机
worker 的主机名或 IP 地址。worker 节点必须支持 ajp13 协议堆栈。默认值为
localhost。您可以将
port指令指定为 host 指令的一部分,方法是在主机名或 IP 地址后附加端口号。例如:worker.node1.host=192.168.2.1:8009或worker.node1.host=node1.example.com:8009。- port
-
侦听定义的协议请求的远程服务器实例的端口号。默认值为
8009,这是 AJPv13 worker 的默认监听端口。 - ping_mode
指定在其当前网络健康状态中探测到哪些连接的条件。
该探测为
CP使用空的 AJPv13 数据包,并在指定的超时内要求返回CPong。您可以使用指令标记的组合来指定条件。标志不是用逗号分开。例如,设置正确的指令标记是
worker.node1.ping_mode=CI。- c(connect)
-
指定连接在连接到服务器后探测一次。您可以使用
connect_timeout指令指定超时,否则将使用ping_timeout的值。 - P(prepost)
-
指定连接在向服务器发送每个请求前被探测。您可以使用
prepost_timeout指令指定超时,否则将使用ping_timeout的值。 - I(interval)
-
指定在常规内部维护周期内会探测连接。您可以使用
connection_ping_interval指令指定每个间隔之间的空闲时间,否则使用ping_timeout的值。 - A(全部)
-
最常用的设置,用于指定应用所有指令标记。有关
\*_timeout高级指令的详情,请查看 Apache Tomcat Connector - 参考指南。
- ping_timeout
-
指定
CPong回答连接探测的时间(请参阅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,每个会话都会持久(锁定)到服务器终止前,提供该服务器可用。