Apache Http Load balancing failover with mod_jk
我正在使用 apache http 和 mod_jk 进行负载平衡。如果其中一个 tomcat 实例死亡,则使用粘性会话时,请求将成功重定向到另一个节点。如果由于某种原因应用程序死亡但 tomcat 还活着,那么请求会继续发送到具有死亡应用程序的节点。任何想法如何解决这个问题?
下面你可以罚款我worker.properties文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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 |
谢谢!
通常当应用程序不可用而tomcat仍在运行时,它会给出404错误。我认为有一个工人指令可以处理它并且是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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 |
mod_jk 无法 ping 心跳 URL 来确定节点的健康状况。
一个解决方案是使用一个外部脚本来为你做这件事,如果应用程序不活跃,它应该重新启动 tomcat 实例。