我已经成功地将mod_jk设置为在两个Tomcat服务器之间进行循环负载平衡。即使一个Tomcat实例完全关闭,一切也都可以正常工作,但是,即使应用程序已停止或无法在其中一个Tomcat上启动,mod_jk仍会尝试连接并转发请求(最终失败),最后以HTTP 404
。如果Tomcat未关闭但应用程序未启动,是否可以配置mod_jk将请求发送到辅助源?
我的workers.properties
worker.list=loadbalancer,jkstatus
# Define Node1
worker.node1.port=8009
worker.node1.host=tomcat1
worker.node1.type=ajp13
worker.node1.lbfactor=1
worker.node1.connection_pool_timeout=600
worker.node1.socket_keepalive=1
worker.node1.redirect=node2
# Define Node2
worker.node2.host=tomcat2
...
worker.node2.redirect=node1
# Load-balancing behavior
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2
worker.loadbalancer.sticky_session=false
# Status worker for managing load balancer
worker.jkstatus.type=status
在我的httpd.conf
中,我像这样路由到Web服务:
JkMount /service-1/* loadbalancer
JkMount /service-2/* loadbalancer
JkMount /service-3/* loadbalancer
JkMount /service-4/* loadbalancer
JkMount /service-5/* loadbalancer
每个service-x
是Tomcat上的一个应用程序。