varnish - 多个 url 清除 Varnish 问题

标签 varnish varnish-vcl

我在清除 Varnish 方面遇到问题:

我们的应用程序非常动态。 因此,对象 A 上的事件将生成 10.000 个清除,因为对象 A 信息存在于所有页面中。

对象 A 是统计卖家,页面是广告页面。

我们通过使用curl从php代码对varnish进行异步http PURGE调用来管理此问题。

因此我们将有 10000 个 http 调用 无法计算 url(因此 REgex 不是选项)

我想问一下大家,varnish有没有可能做一些Batch Purging(HTTP接口(interface))?

如果没有,当模型和事件对您的页面影响很大时,您在非常动态的应用程序中测试和工作的选项是什么。

提前致谢 纳比尔

最佳答案

通过 varnishadm 运行清除将是您最好的选择。您可以通过 SSH 传输命令(假设您正在处理远程 Varnish 服务器),也可以允许从 Web 服务器远程访问 Varnish 服务器。

您可以轻松编写自己的 shell 脚本来使用 varnishadm 运行批量清除,或者您可以查看 Thinner ,这是一个基于 Ruby 的清除程序,旨在完全满足您的需求。

您很可能已经考虑过的明显替代方案是重写您的应用程序,以在 URL 或自定义 header 中包含对象 A(例如 X-Object : A),因此您可以根据该 header 进行禁止:

sub vcl_recv {
  if (req.request == "BAN") {
    ban("obj.http.x-object == " +  req.http.x-object);
  }
}

关于varnish - 多个 url 清除 Varnish 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15439541/

相关文章:

cookies - 通过varnish设置cookie

browser-cache - 使用Varnish时浏览器缓存仍然存在

memcached - LAMP 服务器上有 Memcache、APC 和 Varnish 好吗?

wordpress - Varnish 未启动语法错误

varnish - Varnish 是否可以在 vcl_fetch 中检查请求的内容(而不仅仅是 header )并使用react?

caching - LB服务器下的varnish

Varnish 不断缓存我的跟踪软件

caching - Varnish 4 VCL- strip 定义的查询字符串参数

http-headers - Varnish :如何使用 `std.ip()` 设置标题值

magento - Google Analytics(分析)Magento速度问题