【问题标题】:PURGING objects on multiple instances of varnish清除多个清漆实例上的对象
【发布时间】:2013-06-04 17:11:56
【问题描述】:

我在 Varnish 实例前使用负载均衡器 (LB)。只需说 LB 正在侦听 Port: 80 并且在不同的端口号上有多个 Varnish 实例。

即我有一个连接到 4 个清漆实例的 LB,并且 LB 以循环方式执行。

现在,我如何清除 Varnish 上的对象并保持不同 Varnish 实例之间的一致性。

【问题讨论】:

    标签: load-balancing varnish haproxy


    【解决方案1】:

    解决此问题的简单方法是对您知道需要清除的内容使用低 TTL。使用 10 秒的 TTL,可能根本不需要发送清除。以一些后端请求为代价解决了问题。除非您的后端非常慢,或者您的流量水平在每秒 100/1000 秒,否则这将正常工作。

    考虑到您的 LB 实际上正在执行循环,另一个稍微肮脏的解决方案就是让清除进程发送 PURGE 请求 n 次。其背后的每个清漆都有一个请求。这当然有点脆弱,因为您可能(/将)在添加更多服务器时忘记调整它。

    如果你真的想让它变脏,你可以在 VCL 中重新启动并链接进程。让 Varnish #1 在清除自己的缓存后,使用 Varnish #2 作为 PURGE 请求的后端。 #2 做同样的事情并将其传递给 #3,冲洗并重复。这里是龙,除非你对 VCL 非常熟悉,否则不要这样做。

    【讨论】:

      猜你喜欢
      • 2013-03-04
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多