【发布时间】: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