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