使用 mod_jk 将特定请求重定向到集群中的节点

Redirecting specific request to a node in cluster using modjk

我创建了一个集群(负载均衡器),它由两个节点 node1 和 node2 组成,现在我希望 node2 处理特定请求,例如 /context/heavyservice1、/context/vheavyservice 并且 node1 和 node2 都处理/context/service(工作正常),我的问题是如何配置 modjk 以便节点 2 处理一些服务。

以下是我的部分配置

worker.list= lbNode
worker.lbNode.type=lb


worker.node1.type=ajp13

worker.node1.port=8009

worker.node1.host=server1

worker.node2.type=ajp13

worker.node2.port=8009

worker.node2.host=server2

worker.lbNode.balance_workers=node1,node2
  • 您可以设置额外的 VirtualHosts 以直接路由到特定节点。

例如:

    NameVirtualHost *:80
<VirtualHost *:80>
  ServerName node1.com
  JkMount /application node1
</VirtualHost>
<VirtualHost *:80>
  ServerName node2.com
  JkMount /application node2
</VirtualHost>

你可以这样测试:

worker.list=lbNode,node1,node2

worker.node1.type=ajp13
worker.node1.port=8009
worker.node1.host=server1

worker.node2.type=ajp13
worker.node2.port=8009
worker.node2.host=server2

worker.lbNode.balance_workers=node1,node2
worker.lbNode.type=lb

然后您必须设置映射。您可以在同一虚拟主机(或在默认主机中,无需创建任何虚拟主机)中设置到不同节点的映射。只需使用 JKMount 和 JKUnMount 来满足您的要求

JKMount /context lbNode
JKMount /context/* lbNode
JKUnMount /context/heavyservice1 lbNode
JKUnMount /context/vheavyservice lbNode
JKMount /context/heavyservice1 node2
JKMount /context/vheavyservice node2