我想知道,是否有一种方法可以在不完全重启apache的情况下添加/删除Apache2 mod_proxy_balancer balancer-members,这样现有的连接就不会中断?
如果我只更新相等的vhost-file中的成员,并通过
service apache2 reloadapache不会应用所做的更改。提供的balancer-manager指令和web后端允许在不重新启动的情况下修改特定消隐成员的参数(例如,加载因子),但不能以这种方式添加新成员或删除现有成员。
发布于 2014-07-16 21:03:59
最后,由于一些关于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 and界面,可以添加、删除、启用、禁用和设置每个(虚拟)成员的负载因子。
总而言之,可以使用此解决方法以编程方式动态修改mod_proxy_balancer。
https://stackoverflow.com/questions/14282625
复制相似问题