【问题标题】:Apache delete/remove/undefine a proxy balancer definitionApache删除/删除/取消定义代理平衡器定义
【发布时间】:2017-02-09 17:36:19
【问题描述】:

我有一个 Apache 配置,需要实现一个平衡器,该平衡器使用一组临时上游服务器几个月,然后用一组永久服务器替换它们。我正在尝试设计一种方法,使我可以在安装时提供两种配置,并且以后可以轻松地以编程方式切换它们。这需要在大约 40 台具有独特配置的服务器上完成。

到目前为止我已经尝试过什么......

我在 httpd.conf 文件中添加了以下代码:

<proxy balancer://upstream>
  balancermember http://permanentserver1:80
  balancermember http://permanentserver2:80 status=+H
  balancermember http://permanentserver3:80 status=+H
</proxy>
include conf\temp_upstream.conf

..然后在 temp_upstream.conf 文件中,我尝试覆盖平衡器的定义

<proxy balancer://upstream>>
  balancermember http://temporaryserver1:80
  balancermember http://temporaryserver2:80 status=+H
  balancermember http://temporaryserver3:80 status=+H
</proxy>

……但它似乎不起作用。第二个平衡器定义似乎被忽略了(尽管它可能被合并 - 我不能轻易说出)。

我使用这种方法的原因是,我可以在需要执行切换时将 temp_upstream.conf 文件替换为空文件 - 然后重新启动 Apache。

有什么方法可以使这个配置工作吗?有没有一种方法可以取消定义/删除脚本中先前定义的平衡器,以便接受第二个定义? (我知道我可以在启动行传递一个变量并使用IfDefine 有条件地处理正确的定义——但这意味着修改我不想这样做的 Apache 启动命令。)

【问题讨论】:

  • 为什么不添加它们并禁用状态?或者在需要时将两个部分都包含并注释和取消注释?同时拥有两个具有相同名称的平衡器是合乎逻辑的并且会带来问题。它也是"balancer://" 和 //

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


【解决方案1】:

我最近找到了一个完美的解决方案来解决我的问题。

我确认这 2 个定义在内存中合并以形成一个更大的定义。

通过将“lbset=0”(默认值)添加到 temp_upstream.conf 文件的临时配置中的每个 BalancerMember 定义并将“lbset=1”添加到 BalancerMember,我能够使其完全按照我的意愿工作httpd.conf 中永久配置中的定义。 lbset=1 定义仅在所有 lbset=0 定义都失败后使用。

【讨论】:

    猜你喜欢
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 2012-07-16
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多