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,

Другие вопросы по тегам