使用Apache mod-proxy-balancer,我想平衡两个平衡器。 这可能吗?
背景:
我们正在升级我们的一些服务器堆栈,对于部署过程,我们希望通过向新服务器发送一小部分用户来缓慢地引入新堆栈。
我为旧堆栈定义了平衡器,并为新堆栈定义了平衡器。 我想要的是有一个第三平衡器,其成员是其他平衡器。
例:
<Proxy balancer://oldstack> BalancerMember http://10.10.10.5 retry=30 timeout=20 route=old1 BalancerMember http://10.10.10.6 retry=30 timeout=20 route=old2 </Proxy> <Proxy balancer://newstack> BalancerMember http://10.10.10.8 retry=30 timeout=20 route=new1 BalancerMember http://10.10.10.9 retry=30 timeout=20 route=new2 </Proxy> <Proxy balancer://entrypoint> BalancerMember balancer://oldstack retry=30 timeout=20 route=old loadfactor=90 #90% BalancerMember balancer://newstack retry=30 timeout=20 route=new loadfactor=10 #10% ProxySet stickysession=ROUTEID </Proxy>
当我尝试运行这个,它抱怨[warn] proxy: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule. [warn] proxy: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
这可能是一个BalancerMember是另一个平衡器?
文档是不确定的,但我不认为你可以这样做,你需要深入到mod_proxy_balancer来确认。 正如@ETL所build议的,您可以通过将每个平衡器组移动到单独的Apache虚拟主机来完成此操作。
或者可能会这样的工作?
<Proxy balancer://entrypoint> # Members of Old stack BalancerMember http://10.10.10.5 retry=30 timeout=20 route=old1 loadfactor=45 BalancerMember http://10.10.10.6 retry=30 timeout=20 route=old2 loadfactor=45 # Members of new stack BalancerMember http://10.10.10.8 retry=30 timeout=20 route=new1 loadfactor=5 BalancerMember http://10.10.10.9 retry=30 timeout=20 route=new2 loadfactor=5 ProxySet stickysession=ROUTEID </Proxy>