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