0

我想知道,是否有办法在不完全重启 apache 的情况下添加/删除 Apache2 mod_proxy_balancer balancer-members,这样现有的连接就不会被中断?

如果我只是更新相同的 vhost 文件中的成员并通过

service apache2 reload

apache 不会应用所做的更改。提供的balancer-manager指令和 Web 后端允许在不重新启动的情况下修改特定 blanacer 成员(例如 loadfactor)的参数,但不能以这种方式添加新成员或删除现有成员。

4

1 回答 1

0

最后,由于一些不常见的问题apachemod_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-managerWeb 界面来完成的。

总而言之,mod_proxy_balancer可以使用此解决方法以编程方式进行动态修改。

于 2014-07-16T13:03:58.880 回答