~/tools/nginx/gzip-config-generator

Nginx

Nginx Gzip Config Generator

Сгенерировать блок настройки gzip-сжатия для nginx.

Как это работает

Gzip сжатие в nginx включается одной директивой gzip on, но без правильной настройки уровня сжатия, минимального размера файла и списка типов контента толку от этой директивы будет немного. Nginx gzip config generator online собирает готовый блок настроек с разумными значениями по умолчанию, которые можно скорректировать под свой сценарий.

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

Список gzip_types явно перечисляет, какие типы контента вообще стоит сжимать, обычно это текстовые форматы вроде css, javascript, json и svg, потому что уже сжатые бинарные форматы вроде jpg или mp4 от повторного gzip сжатия почти не выигрывают в размере, а CPU тратят зря.

Частые вопросы

Стоит ли ставить максимальный уровень сжатия gzip девять?

Не всегда, разница в размере результата между уровнем шесть и девять обычно невелика, а нагрузка на CPU сервера при девятом уровне заметно выше, для большинства сайтов уровень шесть остается разумным выбором по умолчанию.

Почему в списке gzip_types нет изображений и видео?

Форматы вроде jpg, png и mp4 уже используют собственное сжатие внутри формата, повторное gzip сжатие для них почти не уменьшает размер файла, а иногда даже немного увеличивает его, поэтому такие типы обычно не включают в список.

Что делает директива gzip_vary on?

Она добавляет заголовок Vary Accept-Encoding в ответ сервера, это важно для правильной работы кеширующих прокси и CDN, чтобы они не отдавали сжатую версию клиенту, который gzip не поддерживает.

Нужен ли перезапуск nginx после изменения настроек gzip?

Да, изменения конфига применяются только после reload или полного рестарта процесса nginx, обычно достаточно команды nginx с флагом минус s reload без разрыва уже установленных соединений.