srcache_methods
Директива `srcache_methods` задаёт HTTP-методы, которые могут кэшироваться в прозрачной системе кэширования NGINX, основанной на subrequest.
Описание
Директива 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).