proxy_cache_background_update

Директива 'proxy_cache_background_update' позволяет обновлять кэш при отдаче устаревших ответов.

Синтаксисproxy_cache_background_update on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументыflag

Описание

Директива 'proxy_cache_background_update' — это флаг в HTTP-модуле NGINX, который определяет, должен ли NGINX пытаться в фоновом режиме получить свежую версию кэшированного ресурса, когда клиенту отдается устаревшая версия ресурса. По умолчанию, когда поступает запрос к кэшированному элементу, срок действия которого истёк (т.е. он стал устаревшим), NGINX обычно возвращает устаревшую версию ресурса. Если директива 'proxy_cache_background_update' установлена в 'on', NGINX не только отдаёт устаревший ответ, но и инициирует запрос на получение обновлённой версии ресурса в фоновом режиме. Это гарантирует, что следующий запрос клиента к этому ресурсу получит свежую версию с минимальными накладными расходами по производительности.

Это поведение особенно полезно в сценариях, где нужно поддерживать высокую доступность и быстрый отклик, одновременно обеспечивая актуальность кэшированных ресурсов. Например, в средах с частыми изменениями данных эта директива может снизить воспринимаемую задержку для пользователей, при этом эффективно управляя нагрузкой на сервер. Установка директивы в 'off' вернёт стандартное поведение — отдачу устаревших ответов без попыток обновления кэша в фоновом режиме.

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

http {
    proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m max_size=1g;

    server {
        location / {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_background_update on;
        }
    }
}

Если используется вместе с 'proxy_cache_use_stale', убедитесь в правильной настройке, чтобы при фоновых обновлениях не обслуживать непреднамеренно устаревший контент.

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

Имейте в виду, что включение этой функции может привести к большему числу одновременных соединений с бэкенд-сервером во время обновления кэша.

← Ко всем директивам