我想通过使用自定义标头:“Do-Cache”从我的脚本实现自定义nginx缓存控制方法。 我在nginx的http块中使用:
map $sent_http_do_cache $nocache {
public 0;
default 1;
}
在nginx的服务器块中:
fastcgi_cache_bypass $nocache;
fastcgi_no_cache $nocache;
因此,对于Do-Cache: public
,nginx应该缓存响应。否则不是。
但是这种配置不起作用。通过调入日志,$sent_http_do_cache
和$nocache
的值是正确的,直到它们被用在nginx的服务器块中。如果在服务器块(fastcgi_cache_bypass $nocache
或简单set $a $nocache
)中使用它们,$nocache
变量的值为“1”,$sent_http_do_cache
- “ - ”。< / p>
是否有其他方法可以根据自定义标头管理nginx的缓存?
答案 0 :(得分:0)
基于响应头的缓存无法完成,因为它意味着Nginx必须将请求代理回后端并检查其响应,从而破坏了代理缓存的目的。