最后,由于一些不常见的问题apache
和mod_proxy_balancer
(有关更多详细信息,请参阅https://issues.apache.org/bugzilla/show_bug.cgi?id=44736)我做了一些解决方法:
首先用占位符填充平衡器工作配置,将负载因子设置为“1”,例如:
<Proxy balancer://mycluster>
BalancerMember http://www.cmgm.info/virtual/1/ loadfactor=1
BalancerMember http://www.cmgm.info/virtual/2/ loadfactor=1
BalancerMember http://www.cmgm.info/virtual/3/ loadfactor=1
BalancerMember http://www.cmgm.info/virtual/4/ loadfactor=1
BalancerMember http://www.cmgm.info/virtual/5/ loadfactor=1
...
BalancerMember http://www.cmgm.info/virtual/n/ loadfactor=1
</Proxy>
然后mod_rewrite
用于将占位符动态分配给真正的平衡器成员,例如:
RewriteEngine on
RewriteRule ^1/(.*)$ http://www.worker1.de/$1 [P]
RewriteRule ^2/(.*)$ http://www.worker2.de/$1 [P]
...
RewriteRule ^n/(.*)$ http://www.workern.de/$1 [P]
添加、删除、启用、禁用和设置每个(虚拟)成员的负载因子是通过访问balancer-manager
Web 界面来完成的。
总而言之,mod_proxy_balancer
可以使用此解决方法以编程方式进行动态修改。