auth_digest_shm_size
Задает размер зоны разделяемой памяти, используемой для хранения данных digest-аутентификации.
Описание
auth_digest_shm_size директива в NGINX определяет размер разделяемой памяти, выделяемой для хранения информации о состоянии, связанной с digest-аутентификацией. Эта память необходима для обработки запросов аутентификации, хранения учетных данных пользователей и метаданных, таких как попытки аутентификации и времена истечения. По умолчанию, если явно не задано, размер разделяемой памяти инициализируется значением 1024 килобайт, которое можно регулировать в зависимости от ожидаемого числа пользователей или запросов, что потенциально улучшает производительность при высоких нагрузках.
Данная директива определена в контекстах http и server, что предоставляет гибкость в конфигурации. При настройке вы указываете размер в байтах; например, указание 256m выделяет 256 мегабайт разделяемой памяти. Размер должен соответствовать ожидаемой нагрузке и числу уникальных пользователей, чтобы избежать исчерпания выделенной памяти. Если разделяемая память слишком мала, это может привести к сбоям аутентификации или увеличению задержек из‑за частых операций очистки памяти по мере удаления записей.
Инициализация и выделение разделяемой памяти происходят на этапе проверки конфигурации NGINX. Директива запускает создание зоны разделяемой памяти, где NGINX может хранить данные, связанные с пользователями, и эффективно управлять запросами. Правильный выбор размера этой директивы критичен для обеспечения бесперебойной работы при digest-аутентификации, особенно на высоконагруженных сайтах, где частый параллельный доступ к защищенным ресурсам является нормой.
Пример конфига
http {
auth_digest_shm_size 16m;
server {
...
}
}Установка слишком маленького размера может привести к сбоям аутентификации или снижению производительности из-за постоянных операций очистки.
Игнорирование требований к выделению памяти для сайтов с большим трафиком может вызвать серьёзные проблемы с аутентификацией пользователей. Обязательно выделяйте достаточный объём памяти в соответствии с количеством пользователей.