19.6.5. Apache Mod_jk 工作节点的配置
workers.properties
文件定义 mod_jk 传递客户请求的工作节点的行为。在 Red Hat 企业版 Linux 里,这个文件位于 /etc/httpd/conf/workers.properties
。workers.properties
文件定义不同的 Servlet 容器的位置,以及在它们之间如何平衡负载。
这个配置分成三个部分。第一部分处理全局属性,它应用于所有的工作节点。第二部分包含应用于专有节点的设置。第三部分包含应用于专有的采用负载平衡的节点。
属性的常用结构是
worker.WORKER_NAME.DIRECTIVE
,这里的 WORKER_NAME 是工作节点的唯一名称,而 DIRECTIVE 是应用在工作节点上的设置。
Apache Mod_jk 工作节点的配置参考
节点模版指定默认的 per-node 设置。您可以在节点设置里覆盖模版。示例模版位于 例 19.5 “workers.properties
示例文件”。
属性 | 描述 |
---|---|
worker.list | mod_jk 使用的工作节点列表。这些工作节点可用来接收请求。 |
属性 | 描述 |
---|---|
type |
工作节点的类型。默认类型是
ajp13 。其他可能的值还有 ajp14 、lb 和 status 。
关于这些指令的详情,请参照 http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html 里的 Apache Tomcat Connector AJP Protocol 参考。
|
balance_workers |
指定负载平衡器必须管理的工作节点。对于同一个负载平衡器您可以多次使用这个指令。它由一个用逗号隔开的工作节点名列表组成。它是根据每个工作节点而不是节点设置的。它影响该工作节点类型的所有节点。
|
sticky_session |
指定来自相同会话的请求是否总是路由至相同的工作节点。默认值是
0 ,表示禁用 Sticky Session。要启用 Sticky Session,请将其设置为 1 。Sticky Session 通常应该被启用,除非所有的请求都是 stateless 的。这是针对每个工作节点而非节点设置的。它影响该工作节点类型的所有节点。
|
属性 | 描述 |
---|---|
host |
工作节点的主机名和 IP 地址。工作节点必须支持
ajp 协议栈。默认值是 localhost 。
|
port |
侦听定义的协议请求的远程服务器实例的端口号码。默认值是
8009 ,这也是 AJP13 工作节点的默认侦听端口。AJP14 工作节点的默认端口是 8011 。
|
ping_mode |
连接在哪些条件下会检测网络状态。探测仪用空的 AJP13 数据包进行 CPing,期望有 CPong 回应。使用指令标记组合来指定条件。这些标记不是用逗号或空格分隔的。 ping_mode 可以是任何
C 、P 、I 和 A 的组合。
|
ping_timeout, connect_timeout, prepost_timeout, connection_ping_interval |
连接探测仪设置的超时值。这些值的单位是毫秒,
ping_timeout 的默认值是 10000。
|
lbfactor |
为独立工作节点指定负载因子,且只应用于负载平衡器的成员工作节点。这便于为高性能的服务器赋予更多的工作负载。要赋予某个工作节点 3 倍的默认负载,将其设置为
3 :worker.my_worker.lbfactor=3 。
|
例 19.5. workers.properties
示例文件
worker.list=node1, node2, node3 worker.balancer1.sticky_sessions=1 worker.balancer1.balance_workers=node1 worker.balancer2.sticky_session=1 worker.balancer2.balance_workers=node2,node3 worker.nodetemplate.type=ajp13 worker.nodetemplate.port=8009 worker.node1.template=nodetemplate worker.node1.host=localhost worker.node1.ping_mode=CI worker.node1.connection_ping_interval=9000 worker.node1.lbfactor=1 worker.node2.template=nodetemplate worker.node2.host=192.168.1.1 worker.node2.ping_mode=A worker.node3.template=nodetemplate worker.node3.host=192.168.1.2
Apache mod_jk 的进一步的配置细节超出了本文档的范畴。更多的说明请参考 http://tomcat.apache.org/connectors-doc/ 上的 Apache 文档。