Re: Некорректная работа при выведении сервера из апстрима за timeout

Maxim Dounin mdounin на mdounin.ru
Пт Фев 16 12:01:42 UTC 2018


Hello!

On Fri, Feb 16, 2018 at 01:12:43PM +0300, kpoxa wrote:

> Добрый день.
> 
> nginx version: nginx/1.12.2
> 
> Кслассическая схема:
> 
> nginx - apache (10 серверов) - mysql
> 
> В случае перегрузки базы данных апач отвечает медленно, что логично.
> Перестаёт отвечать nginx'у.
> И как следствие nginx выводит сервер с апачом из работы. Соответственно
> сервер начинает то включаться в работу то выключаться.
> 
> Далее наблюдается следующая картина, которая у вызывает у меня вопрос, у
> апачей куча детей в статусе R, т.е. reading request.
> 
> strace на процесс Апача примерно такой:
> 
> accept(
> 
> пришел syn пакет и апач его принял
> 
> read(
> 
> ждём HTTP запрос от nginx в течении 60+ секунд.
> 
> не знаю в какой момент, но nginx открывает соединения, возможно до вывода
> сервера из работы, а далее не отправляет на него запросы, как следствие
> дети Апача заняты ожиданием запросов и апач в итоге не отвечают нормально.

Попробуйте снять tcpdump (причём желательно - с двух сторон, 
nginx'а и backend'а), возможно станет понятнее, что тут 
происходит.

Ну и сразу стоит убедиться, что между nginx'ом и апачами нет 
какого-нибудь умного statefull firewall'а, а если вдруг есть - 
убрать или тщательно исследовать на предмет настроек и ошибок.

-- 
Maxim Dounin
http://mdounin.ru/


Подробная информация о списке рассылки nginx-ru