gzip

Директива gzip включает или отключает сжатие gzip в NGINX. — NGINX HTTP Core

gzip
httpserverlocationif in location
Синтаксисgzip on | off;
По умолчаниюoff
Контекстhttp, server, location, if in location
МодульNGINX HTTP Core
Аргументыflag

Описание

Директива 'gzip' в модуле HTTP Core NGINX используется для управления сжатием gzip для ответов, отправляемых клиентам. Включив эту директиву, NGINX будет сжимать ответы с помощью алгоритма gzip, что может существенно уменьшить размер передаваемых данных и улучшить время загрузки у клиентов. Сервер проверяет допустимые типы содержимого и возможности клиента (например, наличие заголовка 'Accept-Encoding: gzip'), чтобы определить, следует ли отвечать сжатым содержимым. Эта директива принимает булево значение: при установке в 'on' сжатие gzip включается, а 'off' отключает его. Кроме того, NGINX предоставляет несколько параметров конфигурации, которые могут уточнять поведение сжатия gzip, таких как 'gzip_types', задающий MIME-типы файлов для сжатия, и 'gzip_vary', указывающий, добавлять ли заголовок Vary к ответам, чтобы обозначить наличие другой версии для клиентов, которые не поддерживают gzip. Использование gzip может быть полезно для сокращения затрат на трафик и улучшения пользовательского опыта, особенно для текстовых файлов, таких как HTML, CSS и JavaScript. Важно использовать сжатие gzip осознанно, поскольку не все типы содержимого выигрывают от сжатия, и чрезмерное его применение может привести к ненужной нагрузке на CPU сервера.

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

http {
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}

Убедитесь, что модуль gzip включён при компиляции NGINX, так как он может быть исключён в некоторых сборках.

Чрезмерная компрессия уже сжатых файлов (например, изображений JPEG) не даст никакой пользы и может даже увеличить размер файла.

Не забудьте проверить совместимость с клиентами; некоторые клиенты могут не поддерживать gzip, и для них ответы не будут сжаты.