我有清漆清除问题:
我们的应用程序非常动态。 因此,对象A上的事件将生成10.000清除,因为对象A信息存在于所有页面中。
对象A是统计信息卖家,而Page是广告页面。
我们正在通过使用curl从php代码中调用varnish的asynch http PURGE来管理它。
所以我们将有10000个http电话 无法计算网址(因此REgex不是选项)
我想问你们,有没有可能在清漆中做一些批量清除(HTTP接口)?
如果没有,当模型和事件影响您的页面时,您在非常动态的应用程序中测试和工作的选项是什么。
提前致谢 纳比勒埃拉拉
答案 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);
}
}