Модуль ngx_http_gzip_module — это фильтр,
сжимающий ответ методом gzip,
что позволяет уменьшить размер передаваемых данных в 2 и более раз.
Пример конфигурации
gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml;
Для записи в лог достигнутого коэффициента сжатия можно использовать переменную
$gzip_ratio .
Директивы
синтаксис:
|
gzip on | off ;
|
умолчание:
|
gzip off;
|
контекст:
|
http , server , location , if в location
|
Разрешает или запрещает сжатие ответа методом gzip.
синтаксис:
|
gzip_buffers число размер ;
|
умолчание:
|
gzip_buffers 32 4k|16 8k;
|
контекст:
|
http , server , location
|
Задаёт число и размер буферов,
в которые будет сжиматься ответ.
По умолчанию размер одного буфера равен размеру страницы.
В зависимости от платформы это или 4K, или 8K.
синтаксис:
|
gzip_comp_level степень ;
|
умолчание:
|
gzip_comp_level 1;
|
контекст:
|
http , server , location
|
Устанавливает степень сжатия ответа методом gzip.
Допустимые значения находятся в диапазоне от 1 до 9.
синтаксис:
|
gzip_disable regex ...;
|
умолчание:
|
—
|
контекст:
|
http , server , location
|
Эта директива появилась в версии 0.6.23.
Запрещает сжатие ответа методом gzip для запросов
с полями заголовка “User-Agent”,
совпадающими с заданными регулярными выражениями.
Специальная маска “msie6 ” (0.7.12) соответствует
регулярному выражению “MSIE [4-6]\. ”, но работает быстрее.
Начиная с версии 0.8.11, из этой маски исключается
“MSIE 6.0; ... SV1 ”.
синтаксис:
|
gzip_min_length длина ;
|
умолчание:
|
gzip_min_length 20;
|
контекст:
|
http , server , location
|
Устанавливает минимальную длину ответа, который будет сжиматься методом gzip.
Длина определяется только из поля “Content-Length”
заголовка ответа.
синтаксис:
|
gzip_http_version 1.0 | 1.1 ;
|
умолчание:
|
gzip_http_version 1.1;
|
контекст:
|
http , server , location
|
Устанавливает минимальную HTTP-версию запроса, необходимую для сжатия ответа.
синтаксис:
|
gzip_proxied
off |
expired |
no-cache |
no-store |
private |
no_last_modified |
no_etag |
auth |
any
...;
|
умолчание:
|
gzip_proxied off;
|
контекст:
|
http , server , location
|
Разрешает или запрещает сжатие ответа методом gzip для проксированных
запросов в зависимости от запроса и ответа.
То, что запрос проксированный, определяется на основании наличия поля
“Via” в заголовке запроса.
В директиве можно указать одновременно несколько параметров:
off
-
запрещает сжатие для всех проксированных запросов,
игнорируя остальные параметры;
expired
-
разрешает сжатие, если в заголовке ответа есть поле
“Expires” со значением, запрещающим кэширование;
no-cache
-
разрешает сжатие, если в заголовке ответа есть поле
“Cache-Control” с параметром “
no-cache ”;
no-store
-
разрешает сжатие, если в заголовке ответа есть поле
“Cache-Control” с параметром “
no-store ”;
private
-
разрешает сжатие, если в заголовке ответа есть поле
“Cache-Control” с параметром “
private ”;
no_last_modified
-
разрешает сжатие, если в заголовке ответа нет поля
“Last-Modified”;
no_etag
-
разрешает сжатие, если в заголовке ответа нет поля
“ETag”;
auth
-
разрешает сжатие, если в заголовке запроса есть поле
“Authorization”;
any
-
разрешает сжатие для всех проксированных запросов.
синтаксис:
|
gzip_types mime-тип ...;
|
умолчание:
|
gzip_types text/html;
|
контекст:
|
http , server , location
|
Разрешает сжатие ответа методом gzip для указанных MIME-типов в дополнение
к “text/html ”.
Специальное значение “* ” соответствует любому MIME-типу
(0.8.29).
Ответы с типом “text/html ” сжимаются всегда.
синтаксис:
|
gzip_vary on | off ;
|
умолчание:
|
gzip_vary off;
|
контекст:
|
http , server , location
|
Разрешает или запрещает выдавать в ответе поле заголовка
“Vary: Accept-Encoding”, если активны директивы
gzip,
gzip_static или
gunzip.
Встроенные переменные
$gzip_ratio
- достигнутый коэффициент сжатия — отношение размера исходного
ответа к размеру сжатого.
|