nginx включить fastcgi_cache динамически?
Я пытаюсь найти умный способ включения fasctcgi_cache по требованию, по умолчанию он включен по умолчанию, если вы не делаете
fastcgi_cache_bypass true;
fastcgi_no_cache true;
и я пытаюсь добиться противоположного.
то, что у меня сейчас есть:
fastcgi_cache_bypass $upstream_http_no_cache;
fastcgi_no_cache $upstream_http_no_cache;
Я отправляю все мои URL заголовок no_cache: 1;
в URL, что мне нужно кеш я отправляю заголовок no_cache: 0;
поэтому кеш не отключен.
Это работает, но я не люблю это. и я не могу использовать "если" в конфиге из-за " Если это зло"
есть ли способ отключить его по умолчанию и включить при необходимости?
1 ответ
Таким образом, вы не хотите не кэшировать по умолчанию и иметь заголовок для кэширования. Вы могли бы сделать это с map
директива:
map $upstream_http_no_cache $no_cache {
default $upstream_http_no_cache;
"" "1";
}
...
fastcgi_cache_bypass $no_cache;
fastcgi_no_cache $no_cache;
переменная $no_cache
по умолчанию $upstream_http_no_cache
(это заголовок NO-CACHE из восходящего потока), но пустое значение (т. е. заголовок не установлен) отображается на 1
,