srcache_fetch

Директива srcache_fetch настраивает поведение кэширования для upstream-запросов на основе указанных HTTP-методов и ключей кэша в NGINX.

Синтаксисsrcache_fetch method1 [method2 ...] cache_key;
По умолчаниюnone
Контекстhttp, server, location, if in location
Аргументы2-3

Описание

Директива srcache_fetch — важная часть прозрачной системы кэширования на основе subrequest в NGINX, позволяющая кэшировать ответы от upstream-серверов. Когда эта директива применяется в различных контекстах, таких как http, server или location, она указывает, какие HTTP-методы могут инициировать извлечение из кэша. Директива принимает 2-3 аргумента, которые определяют HTTP-методы (GET, POST и т. д.) и шаблон ключа кэша, используемый для извлечения закэшированных данных или сохранения новых ответов на основе входящих запросов.

Первый аргумент задаёт список допустимых HTTP-методов, которые будут вызывать извлечение из кэша. Это часто запятая-разделённый список, включающий такие методы, как GET и HEAD. Второй аргумент определяет, какой ключ кэша использовать — напрямую или через переменную, основанную на URI запроса и других параметрах. Опциональный третий аргумент может задавать дополнительные параметры или условия использования кэша. Когда находится совпадающий ключ, NGINX обходит обработку upstream и возвращает закэшированный ответ, что заметно повышает производительность за счёт снижения нагрузки на upstream-серверы.

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

location /api {
    srcache_fetch GET /api/cache_key;
}

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

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

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

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