Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching 如何禁止在清漆工程?_Caching_Varnish_Http Caching_Varnish Vcl - Fatal编程技术网

Caching 如何禁止在清漆工程?

Caching 如何禁止在清漆工程?,caching,varnish,http-caching,varnish-vcl,Caching,Varnish,Http Caching,Varnish Vcl,我无法理解禁止在清漆中是如何起作用的。从术语和思想上看,清洗和禁止的区别似乎是 清除使缓存失效,下一个请求转到后端并获取 再次缓存 禁止,禁止一个url。因为它使缓存无效,而不是 只是下一步,但所有即将到来的请求开始进入后端 请澄清 此外,禁止algo被定义为 缓存中的每个对象始终指向ban列表中的一个条目。这是他们最后一次检查的条目。每当Varnish从缓存中检索某些内容时,它都会检查指向ban列表的对象指针是否指向列表的顶部。如果它没有指向列表的顶部,它将根据ban列表上的所有新条目测试

我无法理解禁止在清漆中是如何起作用的。从术语和思想上看,清洗和禁止的区别似乎是

  • 清除使缓存失效,下一个请求转到后端并获取 再次缓存
  • 禁止,禁止一个url。因为它使缓存无效,而不是 只是下一步,但所有即将到来的请求开始进入后端
请澄清

此外,禁止algo被定义为

缓存中的每个对象始终指向ban列表中的一个条目。这是他们最后一次检查的条目。每当Varnish从缓存中检索某些内容时,它都会检查指向ban列表的对象指针是否指向列表的顶部。如果它没有指向列表的顶部,它将根据ban列表上的所有新条目测试对象,如果对象与其中任何条目都不匹配,则更新ban列表的指针


如果有人得到这个,请解释。这将非常有帮助。

在清除大量缓存对象时,出于性能原因会禁用。每次varnish在更新ban列表后收到请求时,都会根据ban列表(如果它存在于缓存中)进行检查。如果它与banlist上的项目匹配,则将删除该项目并获取新项目。此请求(无论是直接匹配还是从后端获取)在banlist再次更新之前,都不需要对ban列表进行另一次查找


这样就可以清除大量对象,而不必一次全部清除。

禁止和清除都是使内容无效的方法

清除要求您可以标识要使其无效的单个URL,并为此URL发送HTTP清除请求

Banning是一种更具可配置性的方式,允许您设置多个和多个需要匹配才能使缓存对象无效的表达式(任何存储的头)。ban在下一个客户端请求时进行评估,或者由定期扫描缓存的内部作业(ban潜伏者)进行评估。可以通过HTTP或varnishadm控制台添加BAN

它总是一次性失效。如果HTTP对象因禁令而无效,那么当它稍后跳回缓存时,它将不会与该禁令匹配

使用“ban”这个词有点令人困惑,因为在缓存中查找时,任何匹配的对象都被禁止作为传递的候选对象。Varnish在缓存中可能有多个版本的哈希键(=主机名+URI),并且需要决定为每个请求提供哪个版本的哈希键