referer_hash_bucket_size
Директива `referer_hash_bucket_size` задаёт размер корзин хеш-таблицы, используемых для хранения HTTP заголовков Referer в NGINX. — NGINX HTTP Core
Описание
Директива `referer_hash_bucket_size` является важным параметром конфигурации для управления хранением заголовков Referer в NGINX. Она определяет размер корзин для хеш-таблицы, в которой сохраняются Referer, что особенно полезно в условиях высокой нагрузки, когда размер заголовков запросов может существенно влиять на производительность. Оптимизируя размер корзин, вы можете улучшить эффективность операций хеширования, минимизировать коллизии и обеспечить более быструю обработку записей Referer. Эту директиву можно задавать в контекстах `http`, `server` или `location`, что даёт гибкость настройки в зависимости от потребностей приложения. Указываемое значение должно быть степенью двойки или близким к оптимальному размеру, соответствующему ожидаемому числу Referer. Для достижения оптимальной производительности значение должно быть внимательно подобрано с учётом архитектуры системы и ожидаемых объёмов трафика, поскольку неверно выбранное значение может привести к увеличенному расходу памяти или неэффективной работе хеш-таблицы, что повлияет на общую производительность. Настройка этой директивы может быть критична после анализа производительности сервера, особенно при наличии большого числа уникальных значений заголовков Referer. По сути, `referer_hash_bucket_size` играет ключевую роль как в управлении памятью, так и в скорости отклика при обработке Referer, повышая устойчивость NGINX как веб-сервера.
Пример конфига
http {
referer_hash_bucket_size 128;
}
Установка слишком маленького размера корзины может вызвать коллизии хэшей и ухудшить производительность.
Желательно, чтобы значения были степенями двойки для оптимальной эффективности.
Изменение этого значения после установления высокой нагрузки без надлежащего тестирования может негативно повлиять на работу сервисов.