【问题标题】:varnish invalidate url REGEX from backend清漆使后端的 url REGEX 无效
【发布时间】:2014-10-16 20:34:15
【问题描述】:

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

如何在 Varnish (4.x) 中使这些来自后端的 url 无效的最佳做法是什么?

从我捕捉到的,我可以:

  1. implement my HTTP PURGE handler 在 VCL 配置文件中,“禁止”匹配接收到的正则表达式的 url
  2. 从后端到 Varnish,为这 3 个 URL 发送 3 个 HTTP PURGE 请求。

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

还有其他方法吗?谢谢。

【问题讨论】:

    标签: regex varnish purge


    【解决方案1】:

    根据这篇精彩的文章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 ~ “\D4376\D” #ban rule emitted to discard dependant objects
    

    我错过的是,有后台进程“ban-lurker”,它迭代缓存的对象,存在适用但尚未尝试的禁令规则,如果测试了所有适用的对象,则丢弃禁令规则。只需要编写禁止规则,例如它仅使用与缓存对象一起存储的数据,而不使用例如req.url,因为 req 对象没有和对象一起存储在缓存中,所以 lurker-process 没有它。

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

    【讨论】:

      猜你喜欢
      • 2012-06-22
      • 2016-09-21
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 2017-07-21
      • 2021-05-09
      • 2012-04-23
      • 2021-10-10
      相关资源
      最近更新 更多