【问题标题】:Apache Http Load balancing failover with mod_jk使用 mod_jk 的 Apache Http 负载平衡故障转移
【发布时间】:2012-01-10 20:00:32
【问题描述】:

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

你可以在下面对我的worker.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

谢谢!

【问题讨论】:

    标签: apache load-balancing mod-jk


    【解决方案1】:

    通常当应用程序在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
    

    【讨论】:

      【解决方案2】:

      mod_jk 无法 ping 心跳 URL 来确定节点的健康状况。

      一种解决方案是使用一个外部脚本,它会为您执行此操作,如果应用程序不活动,它应该重新启动 tomcat 实例。

      【讨论】:

        猜你喜欢
        • 2012-08-24
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 2016-02-20
        • 2016-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多