$request_time

$request_time содержит общее время, затраченное на обработку запроса, в секундах с точностью до миллисекунд. — NGINX Core (HTTP)

$request_time NGINX Core (HTTP)

Описание

Переменная $request_time предоставляет точную оценку времени, затраченного на обработку запроса клиента в NGINX. Эта переменная вычисляется при завершении запроса, фиксируя длительность с момента его получения до отправки ответа клиенту. Конкретно, $request_time фиксирует это время в секундах и долях секунды, что позволяет оценивать производительность и устранять проблемы с задержками в вашем приложении. Значение $request_time устанавливается в процессе обработки запроса, непосредственно перед тем как NGINX отправит ответ. Важно учитывать, что зафиксированное время может зависеть от нескольких факторов, включая сетевую задержку, время обработки на сервере и поведение клиента (например, скорость соединения). В результате типичные значения $request_time сильно различаются в зависимости от приложения и нагрузки на сервер; они могут составлять от нескольких миллисекунд до нескольких секунд, особенно при высокой нагрузке или ресурсозатратных операциях.

Пример конфига

log_format custom '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" request_time: $request_time';

access_log /var/log/nginx/access.log custom;

Подсистема

http

Кэшируется

Нет

Контексты

http, server, location, if

Всегда помните, что $request_time не включает время, затраченное на ожидание соединения, если используются постоянные соединения.

Если в конфигурации NGINX для одного соединения выполняется несколько запросов (например, в режиме keep-alive), $request_time будет отражать только время последнего ответа, а не суммарное время для всего соединения. Используйте $upstream_response_time, если вам нужны времена ответа бэкенда.