Apache mod_proxy_balancer健康检查

我有3个Apache Web服务器设置在另一个运行mod_proxy_balancer的Apache服务器之后。

在今天,其中一个networking服务器重新启动。 大约需要16分钟才能重新启动。

在此期间,我可以在我的Apache mod_proxy_balancer服务器上的错误日志中每隔30秒看到以下日志行

[Tue Sep 30 07:04:42 2014] [error] ap_proxy_connect_backend disabling worker for (s1-sc1-c-use) 

在16分钟的停电期间,这被logging了32次

我正在试图弄清楚这里发生了什么事情。 我担心的是,由于我的平衡器configuration不足,平衡器反复尝试向重新启动服务器发送请求(并因此将错误返回给用户)。

为什么Apache一再告诉我这是“禁用工人”? 平衡器模块是否间歇地将用户请求发送到发生故障的节点,尝试确定是否备份,或者是否有自己的内部健康检查机制,这对用户是不可见的?

好。 我可以解释这一点。

Apache mod_proxy_balancer没有自己的独立健康检查机制。 平衡员(员工)的状态是根据实际转发的用户请求的结果确定的。

顺序如下:

  1. Apache httpd向worker发送请求
  2. Worker不响应,或者用触发故障转移的HTTP状态进行响应,并将成员置于ERR状态
  3. Apache httpd启动重试计时器(默认60秒),并且在重试计时器到期之前不会再发送任何请求
  4. 当重试计时器到期时,请依次返回步骤1

我的重试值是60秒(默认)。

我看到多个日志条目的原因是我的Apache httpd Balancerconfiguration了多个均衡器,每个都有自己的独立重试计时器。

因此,根据应用程序活动,重试定时器将被任意重置,并被任意testing,这就解释了日志中工作人员状态更新的不均匀分布。