$gzip_ratio

Переменная $gzip_ratio содержит коэффициент сжатия, достигнутый gzip, когда NGINX обслуживает сжатый ответ. — NGINX Core (HTTP)

$gzip_ratio NGINX Core (HTTP)

Описание

Переменная $gzip_ratio — это динамическая переменная в NGINX, которая представляет отношение размера сжатого ответа к исходному размеру ответа при включённой gzip-компрессии. Эта переменная вычисляется в момент отправки ответа, конкретно когда используется модуль 'gzip' для сжатия вывода перед его отправкой клиенту. Значение рассчитывается на основе сравнения размера несжатого ответа с размером сжатого ответа, что позволяет оценить, насколько эффективно сжатие. Когда модуль 'gzip' включён в NGINX и ответ сжимается, переменная $gzip_ratio устанавливается после завершения сжатия. Типичное выходное значение может варьироваться от 1 до 100: значение 100 означает, что ответ вовсе не был сжат, а более низкие значения указывают на лучшую эффективность сжатия. Разработчики могут использовать эту переменную для мониторинга производительности и настройки параметров gzip, обеспечивая оптимальное использование пропускной способности и более быструю загрузку для пользователей. В случаях, когда gzip не может эффективно сжать ответ, переменная может показывать коэффициент сжатия 100. Это позволяет администраторам выявлять ситуации, когда определённые типы содержимого (такие как уже сжатые файлы — например, изображения JPEG) не следует обрабатывать настройками gzip, поскольку дополнительное сжатие не даст преимуществ.

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

gzip on;
gzip_min_length 1024;
set $compression_ratio $gzip_ratio;

Подсистема

http

Кэшируется

Да

Контексты

http, server, location

$gzip_ratio отражает значения только при применении gzip-сжатия; если gzip не включен, значение не будет установлено.

Использование $gzip_ratio до начала gzip-сжатия вернёт пустые значения или значения по умолчанию, что может привести к ошибочным расчётам при логировании или обработке ответов.

Имейте в виду, что $gzip_ratio актуален только для клиентов, использующих как минимум HTTP/1.1, поскольку старые протоколы могут не поддерживать согласование gzip.