Varnish - VCL - 在远程主机上执行BAN()请求

时间:2015-11-24 19:11:22

标签: varnish varnish-vcl varnish-4

我有一些清漆缓存正在运行,并希望能够在本地清漆节点上ban()/purge()内容,并且从那里我还想清除远程清漆,因此我可以清除所有清漆主机。

它应该在“POST”方法调用上触发。有没有机会打电话给剧本?在那种情况下?,或在远程缓存上执行BAN / POST请求?

sub vcl_recv {
if(req.http.X-bypass-Cache == "yes" || req.method == "POST") {
      if(req.method == "POST") {
        ban("obj.http.X-SID ~ " +  req.http.X-SID);
        //bans local cache - AND HERE i want to purge also a few other varnish caches like
        ban("192.168.0.1:80", "obj.http.X-SID ~ " +  req.http.X-SID);
      }
      return(pass);
 }

}

我可以从其他任何地方进行清除/禁止,我只需要触发REST-API或本地shell脚本来进行管道。

问候

1 个答案:

答案 0 :(得分:0)

对于记录,有一个用于curl绑定的vmode插件:

https://github.com/varnish/libvmod-curl/

启用curl.get(“http://ENDPOINT/purge.php”) - 调用,这正是我所需要的。