【问题标题】:How to add/delete Apache2 balancer-members without restart如何在不重新启动的情况下添加/删除 Apache2 平衡器成员
【发布时间】:2012-12-26 07:09:55
【问题描述】:

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

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

service apache2 reload

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

【问题讨论】:

  • 我也有类似的问题。我们可以在不重新启动的情况下使用 http:/// 添加/删除其他成员吗?
  • balancer-manager 不提供添加新成员的功能,只能启用/禁用现有成员

标签: apache2 load-balancing mod-proxy-balancer


【解决方案1】:

最后,由于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-manager web 界面来添加、删除、启用、禁用和设置每个(虚拟)成员的负载因子。

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

【讨论】:

  • 假设我们想实现自己的 lb 方法,我们可以通过编程方式添加/删除新的工人吗?
猜你喜欢
  • 2016-09-28
  • 2014-10-25
  • 1970-01-01
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
  • 1970-01-01
相关资源
最近更新 更多