scgi_cache_background_update

Директива `scgi_cache_background_update` включает обновление кэша в фоновом режиме для ответов SCGI. — NGINX HTTP Core

scgi_cache_background_update
httpserverlocation
Синтаксисscgi_cache_background_update on | off;
По умолчаниюoff
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументыflag

Описание

Директива `scgi_cache_background_update` управляет тем, должен ли NGINX инициировать запрос к upstream server, когда запрашивается устаревшая запись кэша. Если установить 'on', то при устаревшей записи кэша NGINX всё равно отдаст эту устаревшую запись клиенту, одновременно в фоновом режиме получая свежую копию от upstream server. Это улучшает время отклика и обеспечивает, что следующий запрос получит свежие данные. Напротив, если установить 'off', NGINX будет выдавать только устаревшую запись до тех пор, пока она снова не станет валидной, без фонового обновления. Это особенно полезно для снижения задержки при обращении к часто запрашиваемому ресурсу, который нечасто изменяется. Чтобы использовать эту директиву, её можно задать в контексте `http`, `server` или `location`. В зависимости от потребностей приложения включение фоновых обновлений кэша может существенно улучшить воспринимаемую производительность и пользовательский опыт за счёт минимизации времени ожидания получения свежих данных. Тем не менее, при включении этой функции важно учитывать нагрузку upstream server, так как множественные фоновые запросы могут привести к повышенной загрузке upstream service, особенно при большом объёме трафика.

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

location /app {
    scgi_pass 127.0.0.1:9000;
    scgi_cache scgi_cache;
    scgi_cache_background_update on;
}

Включение фоновых обновлений может привести к увеличению нагрузки на upstream-сервер, особенно если несколько клиентов одновременно запрашивают устаревшие записи.

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