$bytes_received

Переменная $bytes_received отслеживает общее количество байтов, полученных от клиентов в stream-модуле NGINX. — NGINX Core (Stream)

$bytes_received NGINX Core (Stream)

Описание

В stream-модуле NGINX переменная $bytes_received динамически задаётся, чтобы отражать количество байтов, полученных от клиента в течение конкретного соединения. Она помогает контролировать объём данных, который сервер получил через потоки данных TCP или UDP. Каждый раз при получении данных от клиента эта переменная обновляется соответствующим образом и может использоваться в логах или при сборе метрик производительности. Следовательно, $bytes_received по сути считает все байты, включая заголовки и полезную нагрузку, что делает её удобным инструментом для анализа пропускной способности.\n\nЭта переменная инициализируется в начале соединения и доступна для использования в различных контекстах, связанных с активными соединениями. Например, в форматах логов, модулях мониторинга или при реализации ограничения скорости на основе общего количества полученных байтов. Типичные значения $bytes_received могут сильно варьироваться в зависимости от приложения, но обычно масштабируются от нескольких байтов до нескольких мегабайт и более при высокой нагрузке, в зависимости от типа трафика и настроек stream-сервера NGINX.

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

stream {
    server {
        listen 12345;
        access_log /var/log/nginx/stream_access.log "$remote_addr - $bytes_received bytes received";
    }
}

Подсистема

stream

Кэшируется

Да

Контексты

stream, server, if

Убедитесь, что модуль stream включён в NGINX, так как эта переменная специфична для него.

Будьте осторожны при использовании $bytes_received в контекстах разделяемой памяти, поскольку его значение может сбрасываться при закрытии соединений.

Помните, что эта переменная считает байты только с момента установления соединения до его завершения.