srcache_request_cache_control
Директива `srcache_request_cache_control` управляет кэшированием, контролируя, каким образом запросы клиентов влияют на поведение кэша через определённые HTTP-заголовки.
Описание
Директива srcache_request_cache_control является частью модуля NGINX ngx_srcache, который предоставляет механизм кэширования подзапросов. Эта директива позволяет настроить, как заголовки Cache-Control в запросах влияют на логику кэширования сохранённых ответов. Когда она включена, NGINX будет учитывать заголовки Cache-Control (no-store, no-cache, private и т.д.), отправляемые клиентами в их запросах, тем самым контролируя, можно ли кэшировать ответы. Это даёт гибкость и тонкую настройку поведения кэша на детальном уровне, что делает директиву пригодной для приложений, которым требуются разные стратегии кэширования в зависимости от атрибутов запросов клиентов.
Когда директива установлена в 'on', она включает обработку заголовков запроса Cache-Control. Это особенно полезно в средах с динамической доставкой контента, поскольку позволяет кэшировать ответы или нет в зависимости от условий, специфичных для клиента. Например, если клиент делает запрос с заголовком Cache-Control: no-store, то соответствующий ответ не будет кэшироваться, обеспечивая всегда актуальное получение ресурса. И наоборот, если такие заголовки отсутствуют, применяются стандартные правила кэширования, что снижает нагрузку на сервер и улучшает время отклика.
Пример конфига
http {
server {
location / {
srcache_request_cache_control on;
proxy_pass http://backend;
}
}
}Убедитесь, что srcache_request_cache_control совместим с другими директивами кэширования, используемыми вместе; в противном случае может возникнуть непредсказуемое поведение кэширования.
При включении эта директива может привести к тому, что некоторые ответы не будут кэшироваться как ожидается, если клиенты часто используют заголовки, такие как no-cache.
Тщательно протестируйте поведение кэширования в тестовой среде перед развертыванием в продуктивную среду, особенно при смешанном статическом и динамическом контенте.