srcache_methods

Директива `srcache_methods` задаёт HTTP-методы, которые могут кэшироваться в прозрачной системе кэширования NGINX, основанной на subrequest.

Синтаксисsrcache_methods method1 method2 ...;
По умолчаниюGET;
Контекстhttp, server, location
Аргументы1+

Описание

Директива srcache_methods позволяет указать, какие HTTP-запросы могут кэшироваться механизмом кэширования через subrequest модуля ngx_srcache. По умолчанию кэширование обычно ограничено безопасными методами, такими как GET и HEAD, но эта директива даёт гибкость включать и другие методы, например POST, PUT и DELETE, если этого требует приложение. Это особенно полезно в сценариях, когда ресурсы бэкенда остаются неизменными после POST-запроса или когда ответ на PUT или DELETE может потребоваться кэшировать для повышения производительности.

Синтаксис этой директивы допускает один или несколько имён HTTP-методов в качестве аргументов, которые задаются в формате bitmask. На практике это означает, что можно комбинировать несколько методов в рамках директивы, что позволяет тонко настраивать стратегию кэширования в соответствии с требованиями приложения. При настройке этой директивы важно балансировать между эффективностью кэша и риском выдачи устаревшего содержимого, особенно для методов, известных изменением состояния сервера. Поэтому реализации также должны учитывать другие директивы и политики кэширования для всестороннего контроля поведения кэша.

Директива srcache_methods может располагаться в контекстах http, server или location, позволяя разработчикам задавать это поведение в разных областях конфигурации сервера. Такая гибкость конфигурации позволяет применять адаптированные стратегии кэширования для различных частей приложения в зависимости от конкретных потребностей — например для API-эндпоинтов или путей к статическим ресурсам.

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

location /api {
    srcache_methods GET POST;
}

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

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

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