Re: 499 c нулевым $request_time
Maxim Dounin
mdounin на mdounin.ru
Ср Фев 21 15:16:13 UTC 2018
Hello!
On Wed, Feb 21, 2018 at 02:36:02PM +0500, Dmitry Sergeev wrote:
> Всем привет.
>
> В логах nginx, 499 статус ответа означает отмену запроса на стороне
> клиента. Также в лог ведется запись переменной $request_time.
>
> При любых тестах локально, даже если моментально отменять запрос,
> какое-то значение, хоть и малеьнкое, в переменной $request_time есть.
>
> Но на продакшене, если например взять сервер где 303 264 000 запросов в
> день(около 3400/сек. в среднем), из них 183 278 запросов имеют статус
> 499 со значением 0.000 в переменной $request_time.
>
> Небольшое уточнение: Все запросы динамические (то есть проксируются на
> бэкенд), статика у нас раздается CDN серверами отдельно.
>
> Посдкажите пожаулйста, в каких случаях при 499 статучc $request_time
> может быть 0? Может кто знает. Или это нормальная ситуация, и у всех в
> 0.06% случаев запросы отменяются на стороне клиентов.
>
> Может быть это происходит в случае долгого коннекта с клиентом?
В случае 499 значение $request_time может быть 0, если nginx
узнаёт, что клиент закрыл соединение, в ту же итерацию цикла
обработки событий, что и получает сам запрос.
Чтобы такое повторить в тесте - надо в процессе предыдущей
итерации цикла успеть установить соединение, прислать запрос, и
успеть закрыть соединение.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru