【问题标题】:Varnish - VCL - do BAN() request on remote hostVarnish - VCL - 在远程主机上执行 BAN() 请求
【发布时间】:2015-11-24 19:11:22
【问题描述】:

我有一些清漆缓存正在运行,并且希望能够在本地清漆节点上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 脚本来执行管道。

问候

【问题讨论】:

    标签: varnish varnish-vcl varnish-4


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多