这个一定要单列一个文章讲解,因为实在是太坑了。
打开cache.config会看到常常的一段英文说明,开始时候没有仔细阅读,只是简单看了支持的参数,这为被坑做了很好的铺垫。阅读官网文档和其它中文文档时也没有人提及此配置格式要求,造成一直理解错误,配置错误。
1.为了说明配置格式先上一张图
第一个红框里面是说一下配置必须并且只能包含一个。第二个红框是我一开始的错误配置示范。
正确配置应该是
dest_ip=192.168.1.120 revalidate=30s
所以教训就是这个配置文件的每个参数都要好好看看说明,是不是必须有,能不能重复
2.优先级:ttl-in-cache>revalidate>expires(nginx)
revalidate 需要其他配置来保证对象能写入缓存中,如果不能写入缓存中,其配置无效。
ttl-in-cache 能够单独完成强制对象写入缓存中并保证认为的新鲜期,不需要额外的帮助使对象写入缓存中。
pin-in-cache 只是保证对象在缓存中不被删除,并不影响对象的新鲜度(不会影响http响应头部信息age)。
在同级配置下,前面匹配的配置生效。
https://blog.zymlinux.net/index.php/archives/698
3.上面配置错了或是没有配置,则proxy.config.http.cache.heuristic_min_lifetime生效(优先级最低)
4.未知功能pin-in-cache,官网写了一大堆,但是好像对我并没有什么卵用
如果谁知道此参数还麻烦告知