uwsgi_cache_lock_age

Директива `uwsgi_cache_lock_age` задаёт время ожидания блокировки кэша при обслуживании запросов в NGINX с включённым кэшированием uWSGI. — NGINX HTTP Core

uwsgi_cache_lock_age
httpserverlocation
Синтаксисuwsgi_cache_lock_age time;
По умолчаниюnone
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `uwsgi_cache_lock_age` используется в конфигурациях NGINX для определения конкретного периода таймаута ожидания блокировки кэша. Когда несколько запросов к одному и тому же ресурсу поступают одновременно, механизм блокировки кэша предотвращает перегрузку backend одинаковыми запросами, позволяя только одному запросу получить ресурс из backend, пока остальные будут ждать заполнения кэша. Это предотвращает чрезмерную нагрузку на backend одинаковыми запросами и обеспечивает доставку клиентам актуального содержимого после кэширования ресурса. Значение, указанное для директивы `uwsgi_cache_lock_age`, представляет собой длительность времени, которая контролирует, как долго другие запросы должны ждать освобождения блокировки. Если блокировка кэша недоступна и период таймаута истекает, последующие запросы могут либо немедленно завершиться с ошибкой, либо, в зависимости от конфигурации, продолжить обращение к backend. Таким образом, директива обеспечивает баланс между требованиями к производительности и управлением ресурсами для динамического контента с использованием uWSGI. Эта директива может применяться в различных контекстах внутри NGINX, включая блоки http, server и location. Она особенно эффективна в условиях высокого трафика, где кэширование критично для снижения нагрузки на backend и улучшения времени отклика.

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

uwsgi_cache_lock on;
uwsgi_cache_lock_age 10s;

Установка слишком низкого значения может привести к лавине запросов при одновременных обращениях.

Если не включить `uwsgi_cache_lock`, эта директива станет неэффективной, так как блокировки применяться не будут.

Слишком длительные периоды блокировки кэша могут задерживать ответы для пользователей, ожидающих ответа из кэша.