我无法理解禁止在 Varnish 中是如何工作的。从purge和ban的区别的术语和思路看来
- 清除使缓存无效,下一个请求转到后端并获取 再次缓存。
- BAN,禁止 url。因为它使缓存无效而不是 接下来,所有即将到来的请求都开始进入后端。
请澄清。
此外,禁止算法定义为
缓存中的每个对象总是指向禁止列表中的一个条目。这是他们上次检查的条目。每当 Varnish 从缓存中检索某些内容时,它会检查指向禁止列表的对象指针是否指向列表的顶部。如果它没有指向列表的顶部,它将针对禁止列表中的所有新条目测试该对象,如果该对象不匹配其中任何一个,则更新禁止列表的指针。
如果有人得到这个..请解释。这将非常有帮助。
最佳答案
禁止和清除都是使内容无效的方法。
清除要求您可以识别要使其失效的单个 URL,并为此 URL 发送 HTTP PURGE 请求。
禁止的可配置性更高,并允许您设置多个需要匹配的 AND 表达式(任何存储的 header )以使缓存对象失效。禁令在下一个客户端请求时评估,或由定期扫描缓存的内部作业(ban-lurker)评估。可以通过 HTTP 或通过 varnishadm 控制台添加禁令。
它始终是一次性失效。如果 HTTP 对象因禁令而失效,则当它稍后弹回到缓存中时,将不会与该禁令相匹配。
使用“ban”这个词有点令人困惑,因为在缓存中查找时,任何匹配的对象都被禁止成为传递的候选对象。 Varnish 可能在缓存中有多个版本的哈希键(== 主机名 + URI),并且需要决定为每个请求提供哪个版本。
关于caching - Varnish 中的禁止是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23260232/