Назад | Перейти на главную страницу

Проверка работоспособности Apache mod_proxy_balancer

У меня есть 3 веб-сервера Apache, установленных за другим сервером Apache, на котором запущен mod_proxy_balancer.

Сегодня был перезагружен один из веб-серверов. На перезагрузку ушло около 16 минут.

За это время я вижу следующую строку журнала каждые 30 секунд в журнале ошибок на моем сервере Apache mod_proxy_balancer

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

Это регистрируется 32 раза за 16 минут простоя.

Я пытаюсь понять, что здесь происходит. Меня беспокоит то, что из-за недостатков в моей конфигурации балансировщика балансировщик неоднократно пытается отправить запросы на перезагружающийся сервер (и, следовательно, возвращает ошибки пользователю).

Почему Apache постоянно говорит мне, что это «отключение рабочего»? Модуль балансировщика периодически отправляет пользовательские запросы на отказавший узел, чтобы попытаться определить, есть ли резервная копия, или у него есть собственный внутренний механизм проверки работоспособности, который невидим для пользователя?

ХОРОШО. Я могу это объяснить.

Apache mod_proxy_balancer не имеет собственного независимого механизма проверки работоспособности. Состояние участников (работников) балансировщика определяется на основе результатов фактически перенаправленных запросов пользователей.

Последовательность следующая:

  1. Apache httpd отправляет запрос работнику
  2. Рабочий не отвечает или отвечает статусом HTTP, который запускает отработку отказа и переводит член в состояние ERR
  3. Apache httpd запускает таймер повтора (по умолчанию 60 секунд) и больше не отправляет запросы, пока таймер повтора не истечет
  4. Когда таймер повтора истечет, вернитесь к шагу 1 по порядку.

Мое значение повторной попытки составляет 60 секунд (по умолчанию).

Причина, по которой я вижу несколько записей в журнале, заключается в том, что мой Apache httpd Balancer настроен с несколькими балансировщиками, каждый со своим собственным независимым таймером повтора.

Таким образом, в зависимости от активности приложения таймеры повторов сбрасываются произвольно и произвольно тестируются, что объясняет неравномерное распределение обновлений статуса работника в журнале.