scgi_cache_methods

Директива `scgi_cache_methods` указывает HTTP-методы, которые следует кешировать при использовании протокола SCGI с NGINX. — NGINX HTTP Core

scgi_cache_methods
httpserverlocation
Синтаксисscgi_cache_methods method1 method2 ...;
По умолчаниюGET HEAD
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1+

Описание

Директива `scgi_cache_methods` является частью конфигурации кеширования в настройке NGINX, использующей протокол SCGI, часто применяемый для взаимодействия с веб‑приложениями на языках программирования. Указывая, какие HTTP‑методы (такие как GET и POST) должны кешироваться, эта директива помогает оптимизировать использование кеша, повысить производительность приложений и сократить время отклика за счёт выдачи кешированных ответов для указанных методов. Эта директива принимает один или несколько HTTP‑методов в качестве аргументов. По умолчанию кешируются ответы только для методов GET и HEAD, что обеспечивает корректную обработку динамического контента. Расширяя это до включения таких методов, как POST, администраторы могут улучшить стратегии кеширования для API или приложений, использующих эти методы, хотя следует быть осторожными, поскольку кеширование ответов на POST может привести к проблемам с состоянием взаимодействия. При настройке кеширования важно балансировать между кешированием эфемерных данных и преимуществами производительности для более плавного пользовательского опыта. В контексте `scgi_cache_methods` директива может использоваться внутри блоков http, server или location для настройки поведения кеширования под конкретные участки приложения. Корректная конфигурация требует чёткого понимания потока данных приложения и последствий кеширования различных HTTP‑методов в рамках логики приложения.

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

location /api {
    scgi_pass 127.0.0.1:9000;
    scgi_cache my_cache;
    scgi_cache_methods GET POST;
}

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

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