为了使缓存无效,我按以下方式编码网址:
$clean_url = base64_encode( $url );
http://url_of_the_varnish_host_to_clean/clean/url?v=$clean_url
我想抓住这个网址来清理并解码它在我的vcl文件中。 我这样抓住了这个要求:
if (req.url ~ "^/clean/url?v=")
但我不知道如何捕获参数并对其进行解码。
答案 0 :(得分:0)
您至少需要提供digest.base64_decode
功能的vmod_digest。
另外,你的正则表达式有点不对,应该是:
if (req.url ~ "^/clean/url\?v=")
那就是说,为什么你的失效逻辑必须如此复杂?为什么不采用标准方式 - 即检查purger IP与定义的ACL的匹配,并使PURGE请求的URL无效(不是参数)。