$body_bytes_sent
Переменная $body_bytes_sent в NGINX содержит количество байт, отправленных клиенту в теле ответа, за исключением заголовков ответа. — NGINX Core (HTTP)
Описание
Переменная $body_bytes_sent является значимой метрикой, используемой при логировании и мониторинге производительности NGINX. Она фиксирует общий объём данных, отправленных клиенту, а именно байты, переданные в теле ответа. Эта переменная устанавливается в процессе обработки каждого запроса, после того как тело ответа сформировано и отправлено. Важно отметить, что переменная не учитывает отправленные заголовки, а только содержимое тела. Эта переменная особенно полезна при оценке производительности и вычислении потребления полосы пропускания. По мере обработки HTTP-запросов NGINX поддерживает аккумулятор переданных байт, который в конечном итоге даёт значение $body_bytes_sent. Типичные значения могут варьироваться от 0 (в случаях, когда запрос завершился ошибкой или тело не было отправлено) до любого произвольного размера в зависимости от характера ответа — небольшие для простых HTML-страниц или большие для загрузки файлов или потоковой передачи медиаконтента. На практике значение $body_bytes_sent помогает администраторам выявлять закономерности трафика, вовлечённость пользователей в контент и потенциальные области оптимизации в их приложениях. Логирование этой переменной позволяет анализировать использование полосы пропускания и диагностировать проблемы, связанные с медленными ответами, сопоставляя переданные байты с другими переменными, такими как время ответа и частота запросов.
Пример конфига
log_format custom_format '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent'; access_log /var/log/nginx/access.log custom_format;
Подсистема
httpКэшируется
ДаКонтексты
http, server, location, ifУбедитесь, что к переменной обращаются после того, как тело ответа было установлено или отправлено; в противном случае она может вернуть неожиданные значения, например 0.
Помните, что $body_bytes_sent не включает заголовки; если вам нужен общий объём отправленных байт (включая заголовки), вам потребуется учитывать это отдельно.