多个网址清除清漆问题

时间:2013-03-15 18:21:41

标签: varnish varnish-vcl

我有清漆清除问题:

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

对象A是统计信息卖家,而Page是广告页面。

我们正在通过使用curl从php代码中调用varnish的asynch http PURGE来管理它。

所以我们将有10000个http电话 无法计算网址(因此REgex不是选项)

我想问你们,有没有可能在清漆中做一些批量清除(HTTP接口)?

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

提前致谢 纳比勒埃拉拉

1 个答案:

答案 0 :(得分:2)

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

您可以轻松编写自己的shell脚本以使用varnishadm运行批量清除,或者您可以查看Thinner,这是一个基于Ruby的清除程序,用于执行您正在查找的内容对

您最有可能考虑的显而易见的替代方法是重新编写您的应用,以在网址或自定义标头中包含对象A (例如X-Object: A) ,所以你可以根据那个标题做禁令:

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