【发布时间】:2017-05-19 17:45:17
【问题描述】:
您好,我是 Varnish HTTP-Cache 的新手。我很难理解清除和禁止缓存失效在概念上的区别。
谁能解释和区分清漆http-cache中的禁止和清除?
有人吗?谢谢!
【问题讨论】:
标签: varnish varnish-vcl
您好,我是 Varnish HTTP-Cache 的新手。我很难理解清除和禁止缓存失效在概念上的区别。
谁能解释和区分清漆http-cache中的禁止和清除?
有人吗?谢谢!
【问题讨论】:
标签: varnish varnish-vcl
Purge 和 Ban 之间的区别基本上是硬删除和软删除,但它们都会更新您的缓存。但是,还有一些其他的小细节可以区分它们:
清除:立即从缓存中删除对象。它仅适用于正在请求的特定 url,并且不能将正则表达式与 Purge 一起使用。例如:调用 www.example.com/uri 的 Purge,只会从缓存中删除此 URL 的对象。
禁止:当你想一次移除多个对象时使用它。这可以使用 Purge 中不可用的正则表达式来完成。当使用 Ban 时,会在 Varnish 中创建规则以使对象无效,请求到 Varnish 的每个对象都将根据该规则进行检查,如果匹配则更新。该规则将只检查比它更旧的对象,并且只要有一个比它更旧的对象就会留在 Varnish 中。这个过程避免了同一个对象的失效超过
一次。一个实际的例子是您想要ban所有 .png 对象。使用 Varnish Cli 发出命令ban req.url ~ "\\.png$"。每次从缓存中请求符合此条件的对象时,它将被丢弃,将生成它的新版本并将其交付给客户端。规则之后生成的对象不会被检查。
如果您想要一些实际示例以及如何编写代码,也许您应该查看this answer。
【讨论】: