清漆http-cache中的禁止和清除有什么区别

Joh*_*oca 3 varnish varnish-vcl

嗨,我是Varnish HTTP-Cache的新手.我发现很难理解清除和禁止缓存失效之间的概念差异.

谁可以解释和区分清漆http-cache中的禁止和清除?

任何人?谢谢!

ale*_*jdg 13

基本上,Purge和Ban之间的区别在于硬删除和软删除,但它们都会更新缓存.然而,还有一些细节可以区分它们:

清除:立即从缓存中删除对象.它仅适用于所请求的特定URL,并且无法使用带有Purge的正则表达式.例如:调用www.example.com/uri的清除,只会从缓存中删除此URL的对象.

禁令:当您想要一次删除多个对象时使用它.这可以使用Purge中不可用的正则表达式来完成.当使用Ban时,在Varnish内部创建一个规则以使对象无效,将根据此规则检查每个请求Varnish的对象,如果匹配则更新.此规则将仅检查早于它的对象,并且只要存在比它更旧的对象,它将保留在Varnish中.此过程可避免多次使同一对象失效.一个实际的例子就是你要禁止所有的.png对象.使用Varnish Cli,您可以发出命令ban req.url ~ "\\.png$".每次从缓存请求匹配此条件的对象时,它将被丢弃,将生成新版本并将其传送到客户端.不会检查规则后生成的对象.

如果你想要一些实际的例子以及如何编码,也许你应该检查一下这个答案.