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

Проблемы с загрузкой веб-серверов в сети при отказе одного из них

У меня есть сеть из одного сервера балансировки нагрузки (с использованием nginx) фунт1 который направляет трафик между четырьмя веб-серверами web1, web2, web3, web4. Эти четыре веб-сервера настроены на использование циклического перебора в nginx.

Все серверы настроены на max_fails = 1 и fail_timeout = 5 с, поэтому, когда сервер не работает, его следует довольно быстро игнорировать, если он не в сети.

Следует отметить, что среднее время отклика веб-страниц с каждого веб-сервера составляет около 50–150 мс, если все четыре веб-сервера находятся в сети. Проблема возникает, когда только ОДИН веб-сервер отключен. Когда один из них переходит в автономный режим и пользователь пытается загрузить другую страницу, время отклика варьируется от 50 мс до 25 с. Да, 25 секунды.

Я сбит с толку, потому что я бы подумал, что настройки round-robin и fail_timeout сделают так, чтобы автономный сервер игнорировался.

Дополнительные, возможно относящиеся к делу примечания: все четыре веб-сервера работают под управлением apache с php5, и memcached включен между четырьмя.

Кажется, вы неправильно поняли fail_timeout параметр. Пожалуйста, перечитайте документация.

время, в течение которого должно произойти указанное количество неудачных попыток связи с сервером, чтобы сервер считался недоступным;

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

Ты должен настроиться proxy_connect_timeout, proxy_send_timeout и proxy_read_timeout директивы и увеличение в fail_timeout стоимость.