fastcgi_cache_lock_age

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

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

Описание

Директива `fastcgi_cache_lock_age` в HTTP-модуле NGINX задаёт максимальное время в секундах, которое запрос должен ожидать доступности блокировки кэша `FastCGI`, если кэш уже заблокирован другим запросом. Когда поступает несколько запросов к одному ресурсу и кэш заблокирован из-за обработки того же содержимого другим запросом, эта директива предотвращает бесконечное ожидание запросов. Вместо этого заданный период ожидания (устанавливаемый этой директивой) позволяет повторить запросы после определённого времени. Это помогает оптимизировать время ответа для пользователей и улучшает общую производительность сервера, избегая чрезмерных задержек в ожидании. Параметр для `fastcgi_cache_lock_age` задаётся в секундах и принимает целочисленное значение. Например, если эта директива установлена в 10, любой запрос, столкнувшийся с блокировкой кэша, будет ждать максимум 10 секунд, прежде чем отказаться от получения блокировки и отправить новый запрос. Слишком большие значения могут привести к задержкам в ответах пользователям, тогда как слишком маленькие — к ненужным промахам кэша. Администраторам следует подбирать значение параметра `fastcgi_cache_lock_age`, исходя из ожидаемых шаблонов доступа к кэшу для их приложений и допустимой задержки для конечных пользователей.

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

location /app {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_cache my_cache;
    fastcgi_cache_lock on;
    fastcgi_cache_lock_age 10;
}

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

Если `fastcgi_cache_lock` не включён, `fastcgi_cache_lock_age` не будет иметь эффекта.