У меня есть 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 не имеет собственного независимого механизма проверки работоспособности. Состояние участников (работников) балансировщика определяется на основе результатов фактически перенаправленных запросов пользователей.
Последовательность следующая:
Мое значение повторной попытки составляет 60 секунд (по умолчанию).
Причина, по которой я вижу несколько записей в журнале, заключается в том, что мой Apache httpd Balancer настроен с несколькими балансировщиками, каждый со своим собственным независимым таймером повтора.
Таким образом, в зависимости от активности приложения таймеры повторов сбрасываются произвольно и произвольно тестируются, что объясняет неравномерное распределение обновлений статуса работника в журнале.