【问题标题】:Multiple load balancer using mod_proxy_balancer on httpd在 httpd 上使用 mod_proxy_balancer 的多个负载均衡器
【发布时间】:2018-01-30 08:26:41
【问题描述】:

了解通过ajp在httpd上使用mod_proxy_balancer,配置如下:

<Proxy balancer://mycluster>
      BalancerMember ajp://public1.yourcompany.com:8009 route=public1
      BalancerMember ajp://public2.yourcompany.com:8009 route=public2
      ProxySet lbmethod=byrequests
</Proxy>

但是在我的情况下,我需要有 2 个集群,所以我正在考虑创建 2 个这样的代理:

<Proxy balancer://mycluster>
  BalancerMember ajp://public1.yourcompany.com:8009 route=public1
  BalancerMember ajp://public2.yourcompany.com:8009 route=public2
  ProxySet lbmethod=byrequests
</Proxy>
<Proxy balancer://my2ndcluster>
  BalancerMember ajp://public3.yourcompany.com:8009 route=public1
  BalancerMember ajp://public4.yourcompany.com:8009 route=public2
  ProxySet lbmethod=byrequests
</Proxy>

但是这个 httpd 无法启动。

我要配置这个吗?

谢谢

【问题讨论】:

  • akf 在那块配置中没有任何东西会导致它无法启动,所以请为了 100% 确定,当它启动失败时分享你在 error.log 中得到的错误条目。在任何情况下,您都应该修复“路由”参数,因为显然在第二个集群中它应该是 route=3 和 route=4
  • @ezra-s 谢谢...发现不是配置导致了问题。修复并更改路由 ID 后运行良好。

标签: apache httpd.conf mod-proxy-balancer


【解决方案1】:

发现与代理设置无关的问题。按照建议解决问题并更改路由 ID 后,代理按预期工作。

【讨论】:

    【解决方案2】:

    尝试使用其中一个 BalancerMember 作为热备 -

    <Proxy balancer://mycluster>
        BalancerMember http://192.168.2.1:8080 retry=30 
        # the hot standby
        BalancerMember http://192.168.2.2:8080 status=+H retry=0
    </Proxy>
    

    完成此操作后,节点 1 服务所有请求,节点 2 等待节点 1 失败并接管。一旦 node1 启动,所有请求将再次由 node1 处理。 Apache 每 30 秒检查一次(重试 = 30)节点 1 是否启动或仍然关闭并切换回节点 1。

    【讨论】:

    • 他想拥有两个平衡器,这是完全可能的,而不是一个具有热备成员的平衡器
    猜你喜欢
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 2021-12-07
    • 2021-03-17
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多