srcache_store_no_store
Директива `srcache_store_no_store` управляет тем, будут ли ответы сохраняться в прозрачном кеше подзапросов на основе директивы 'no-store' в заголовках `Cache-Control`.
Описание
Директива srcache_store_no_store используется в контексте блоков HTTP, server и location в NGINX, в частности с механизмом кэширования на основе прозрачных подзапросов, реализуемым модулем ngx_srcache. Если эта директива установлена в 'on', она указывает NGINX учитывать директиву контроля кэша 'no-store' в HTTP-ответах. Это означает, что если ответ содержит заголовок 'Cache-Control: no-store', NGINX не будет сохранять ответ в кэше, даже если другие настройки могли бы это позволить. И наоборот, если установлено 'off', NGINX будет игнорировать директиву 'no-store', позволяя таким ответам кэшироваться, что потенциально может привести к кэшированию конфиденциального или динамического содержимого, предназначенного не для хранения.
Эта директива служит важным механизмом для предотвращения непреднамеренного кэширования данных, которые считаются конфиденциальными или часто изменяющимися, обеспечивая соответствие спецификациям HTTP по кэшированию того, какое содержимое должно кэшироваться. Она играет ключевую роль в поддержании целостности и конфиденциальности кэшированных данных, обеспечивая соблюдение директив кэширования исходного сервера. Правильное использование этой директивы помогает избежать проблем с кэшированием в средах, где критичны приватность данных или точность часто изменяющихся ответов.
Пример конфига
location /api {
srcache_store_no_store on;
srcache_fetch my_cache;
}
location /public {
srcache_store_no_store off;
srcache_fetch my_cache;
}Убедитесь, что эта директива задана только в предусмотренных контекстах; её неправильное размещение может привести к непредвиденному поведению кэширования.
Установка srcache_store_no_store on в месте с высоким трафиком может привести к существенному снижению эффективности кэша, если многие ответы содержат 'Cache-Control: no-store'.
Учтите директивы кэширования upstream‑сервера, которые могут конфликтовать с этой настройкой и приводить к тому, что поведение будет не соответствовать ожиданиям.