proxy_cache_methods

Директива proxy_cache_methods указывает, какие HTTP-методы допускаются для кэширования в прокси-кэше.

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

Описание

Директива proxy_cache_methods в NGINX используется для определения, какие HTTP-методы следует кэшировать при обработке запросов через проксированный сервер. По умолчанию кэшируются только методы GET и HEAD из-за типичных сценариев использования, где эти методы безопасны для повторных запросов и не изменяют состояние ресурса. Однако приложения могут требовать специфического поведения кэширования для других методов, таких как POST или PUT, например при реализации агрессивных стратегий кэширования или оптимизации производительности.

Эта директива принимает одно или несколько имён HTTP-методов в качестве аргументов, включая 'GET', 'HEAD', 'POST', 'PUT' и т.д. Чтобы включить кэширование для метода, не входящего в список по умолчанию, он должен быть явно перечислен в аргументах этой директивы. NGINX будет фильтровать входящие запросы на основе методов, определённых в proxy_cache_methods, и соответственно кэшировать ответы. Важно учитывать последствия кэширования неидемпотентных методов, так как это может привести к непредвиденному поведению при неправильном управлении.

Важным аспектом использования этой директивы является гибкость контекста её применения: её можно задавать в контекстах http, server или location. Настройки можно тонко настраивать на разных уровнях в зависимости от требований приложения. При изменении поведения кэширования для HTTP-методов необходимо проявлять осторожность, поскольку это может существенным образом повлиять на логику приложения и взаимодействие с ресурсами.

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

location /api { 
    proxy_pass http://backend;
    proxy_cache_methods GET POST;
}

Кэширование неидемпотентных методов (например, POST) может привести к непредвиденному поведению приложения.

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

Неправильно настроенное кэширование для чувствительных операций может непреднамеренно выдавать устаревшие данные.

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