referer_hash_max_size
Задает максимальный размер хеш-таблицы, используемой для хранения данных referer в NGINX. — NGINX HTTP Core
Описание
`referer_hash_max_size` директива в NGINX используется для определения максимального размера хеш-таблицы, которая хранит информацию о referer из входящих запросов. Эта директива играет важную роль в управлении памятью и настройке производительности в части обработки referer. Когда клиент отправляет запрос, NGINX может проверять его referer в рамках контроля доступа или для целей логирования. Эта хеш-таблица по сути представляет собой коллекцию сохранённых referer, которую NGINX поддерживает во время работы. Значение, задаваемое для `referer_hash_max_size`, определяет, сколько записей может вмещать хеш-таблица. Если максимальный размер превышён, NGINX может начать удалять наименее используемые записи или не добавлять новые записи, что может повлиять на приложение, использующее информацию о referer. Установка адекватного размера таблицы помогает предотвратить снижение производительности, особенно если в приложении много различных значений referer, поскольку это обеспечивает эффективность операций поиска. Эта директива может быть задана в контекстах `server` и `location`, что позволяет детально управлять обработкой referer в зависимости от разных виртуальных хостов или конкретных URL-путей. Рекомендуемая практика — анализировать ваши журналы доступа и подбирать значение исходя из разнообразия наблюдаемых данных referer, чтобы оптимизировать использование памяти и поддерживать производительность.
Пример конфига
http {
referer_hash_max_size 64;
}Установка слишком низкого значения может привести к тому, что легитимные запросы Referer будут игнорироваться, если они превышают сохранённый лимит.
Чрезмерное увеличение этого значения может привести к ненужному расходу памяти.
Не устанавливайте эту директиву в неподходящих контекстах, чтобы избежать ошибок конфигурации.