从后端使url REGEX无效



假设我有一个访问量很高的首页,它按类别显示了一些项目的数量。当一些项目被添加/删除时,我需要使这个首页/url和其他2个无效。

如何在Varnish (4.x)后端使这些url无效的最佳实践是什么?

从我捕获的,我可以:

  1. 在VCL配置文件中实现我的HTTP PURGE处理程序,"禁止"与接收到的regex匹配的url
  2. 从后端到Varnish,为这3个url发送3次HTTP PURGE请求。

但是这种方法对于这种自动使用安全吗?基本上,每次插入/更新/删除一些相关实体时,我需要使一些视图无效。它会导致禁止列表累积和增加CPU消耗吗?

还有其他方法吗?谢谢。

根据这篇精彩的文章http://www.smashingmagazine.com/2014/04/23/cache-invalidation-strategies-with-varnish-cache/,解决方案是标签。

X-depends-on: 3483 4376 32095 28372  #http-header created by backend
ban obj.http.x-depends-on ~ “D4376D” #ban rule emitted to discard dependant objects

我错过的是,有一个后台进程"ban-lurker",迭代缓存对象,其中存在适用的,但没有尝试禁止规则,如果所有适用的对象都经过测试,禁止规则被丢弃。禁令规则只需要写入,例如它只使用存储在缓存对象中的数据,而不使用例如req。Url,因为req对象没有和object一起存储在缓存中,所以潜伏进程没有它。

所以现在ban-way +标签对我来说看起来很可靠。谢谢Per Buer:)

最新更新