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的连接指令
- 主机
worker 的主机名或 IP 地址。worker 节点必须支持 ajp13 协议堆栈。默认值为
localhost。您可以通过在主机名或 IP 地址后附加
端口号,将 port 指令指定为 host 指令的一部分。例如:worker.node1.host=192.168.2.1:8009或worker.node1.host=node1.example.com:8009。- port
-
侦听定义的协议请求的远程服务器实例的端口号。默认值为
8009,这是 AJPv13 工作程序的默认监听端口。 - ping_mode
指定在其当前网络健康中探测连接的条件。
该探测对
CPing使用一个空的 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 (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,则每个会话都会保留(锁定)到一台服务器,直到会话被终止,提供该服务器可用。