Apache Http负载平衡故障转移与mod_jk

时间:2011-12-01 17:05:04

标签: apache load-balancing mod-jk

我使用apache http和mod_jk进行负载均衡。如果其中一个tomcat实例死亡,则使用粘性会话时,请求会成功重定向到另一个节点。如果由于某种原因应用程序死了但tomcat处于活动状态,那么请求将继续进入具有死应用程序的节点。有任何想法如何解决这个问题?

下面你可以告诉我work.properties文件。

worker.list=myworker

worker.myworker1.port=8009
worker.myworker1.host=host1
worker.myworker1.type=ajp13
worker.myworker1.lbfactor=1

worker.myworker2.port=8009
worker.myworker2.host=host2
worker.myworker2.type=ajp13
worker.myworker2.lbfactor=1

worker.myworker.type=lb
worker.myworker.balance_workers=myworker1,myworker2
worker.myworker.sticky_session=True

谢谢!

2 个答案:

答案 0 :(得分:2)

一般情况下,当tomcat仍在运行时应用程序不可用时会出现404错误。我认为有一个工作指令可以处理并且是fail_on_status并且您可以使用它来解决404错误,并且可能不需要在此指令中包含503错误代码,这可能意味着tomcat被停止并且它是工作mod_jk的故障转移到其他工作节点。请尝试以下workers.properties(每个工作人员附加一行)以查找以逗号分隔的其他错误代码。

worker.list=myworker

worker.myworker1.port=8009
worker.myworker1.host=host1
worker.myworker1.type=ajp13
worker.myworker1.lbfactor=1
#worker.myworker1.fail_on_status=-404,503
worker.myworker1.fail_on_status=-404

worker.myworker2.port=8009
worker.myworker2.host=host2
worker.myworker2.type=ajp13
worker.myworker2.lbfactor=1
#worker.myworker2.fail_on_status=-404,503
worker.myworker2.fail_on_status=-404

worker.myworker.type=lb
worker.myworker.balance_workers=myworker1,myworker2
worker.myworker.sticky_session=True
worker.myworker.sticky_session_force=True

答案 1 :(得分:1)

mod_jk无法ping心跳网址以确定节点运行状况。

一种解决方案是使用外部脚本为您执行此操作,如果应用程序未处于活动状态,则应重新启动tomcat实例。