gzip_static
Позволяет NGINX напрямую отдавать предварительно сжатые gzip-файлы, если они существуют на диске. — NGINX HTTP Core
Описание
Директива `gzip_static` позволяет NGINX отдавать предварительно сжатые файлы с расширением `.gz` вместо сжатия файлов на лету. При включённой опции, если поступает запрос на сжатый ресурс, NGINX сначала проверит наличие соответствующего файла `.gz` в указанном расположении. Если такой файл найден, он будет отдан напрямую, минуя сжатие модуля `gzip` во время работы. Такой предварительно сжатый файл повышает производительность, особенно в периоды пиковой нагрузки, поскольку снижает нагрузку на CPU, связанную с динамическим сжатием `gzip`. Директива принимает один аргумент — `on` или `off`, указывающий, включить или выключить эту функцию. При установке в `on` NGINX проверяет наличие версий файлов, сжатых `gzip` (обычно с суффиксом `.gz`), при обработке запроса. Если такой файл недоступен, NGINX вернётся к отдаче обычного файла (если он существует) или вернёт ошибку, если не найден ни один из файлов. Такое поведение повышает эффективность доставки ресурсов, особенно для текстового содержимого, такого как HTML, CSS или JavaScript, где `gzip`-сжатие обычно даёт значительное уменьшение размера. Стоит отметить, что для эффективной работы `gzip_static` его часто комбинируют с директивой `gzip`, настроенной так, чтобы сжатие применялось к файлам на этапе сборки или развертывания. Кроме того, необходимо правильно управлять заголовками кэша, чтобы избежать отдачи устаревших данных при обновлении статических файлов.
Пример конфига
http {
gzip_static on;
server {
location / {
root /var/www/html;
}
}
}Убедитесь, что файлы `.gz` корректно сгенерированы и помещены в ожидаемую директорию; в противном случае запросы не смогут вернуть сжатую версию.
Использование `gzip_static` не выполняет автоматического сжатия файлов; как исходные файлы, так и файлы `.gz` должны существовать, чтобы функция работала правильно.
Если `gzip_static` включён без соответствующей директивы `gzip` для динамического сжатия, пользователи могут не получить преимуществ для файлов, которые не были предварительно сжаты.