gzip_hash

Директива `gzip_hash` задаёт алгоритм хеширования, используемый для настроек gzip-сжатия в NGINX. — NGINX HTTP Core

gzip_hash
httpserverlocation
Синтаксисgzip_hash { algorithm | md5 | sha1 | crc32 };
По умолчаниюmd5
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `gzip_hash` является частью модуля HTTP Core NGINX, который управляет тем, как NGINX обрабатывает gzip-сжатие HTTP-ответов. Задавая метод хеширования, она оптимизирует хранение и извлечение параметров gzip для кэшированного содержимого, что обеспечивает лучшую производительность при высокой нагрузке. Эту директиву можно настроить с использованием различных алгоритмов хеширования, таких как `md5`, `sha1` или `crc32`, что позволяет администратору адаптировать отзывчивость и использование ресурсов при gzip-сжатии в зависимости от возможностей сервера и ожидаемого типа содержимого. Выбор метода хеширования может повлиять как на производительность, так и на размер сохраняемых флагов gzip, а следовательно — на общий объём потребляемой памяти. NGINX анализирует контекст сжатия и генерирует значения хеша на основе настроенных параметров, чтобы гарантировать уникальные идентификаторы для сжатого содержимого в соответствии с выбранной хеш-функцией. Директиву `gzip_hash` можно разместить в контекстах `http`, `server` или `location`, что даёт гибкость в конфигурации. Важно учитывать, что выбор более сложной хеш-функции может повысить уникальность записей, но при этом потреблять дополнительные CPU-циклы, поэтому рекомендуется учитывать конкретные потребности вашего приложения и ожидаемую нагрузку при её настройке.

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

http {
    gzip on;
    gzip_hash sha1;
}

Убедитесь, что выбранный алгоритм хеширования поддерживается вашей версией NGINX.

Использование сложного алгоритма хеширования может увеличить нагрузку на CPU при минимальной пользе для эффективности сжатия.

Смена алгоритма хеширования влияет на то, как обрабатываются ранее кэшированные gzip-ответы, что может потребовать их регенерации.