如何在Varnish VCL中提取和解码base64参数

时间:2017-03-27 14:52:28

标签: php base64 varnish varnish-vcl

为了使缓存无效,我按以下方式编码网址:

$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=") 

但我不知道如何捕获参数并对其进行解码。

1 个答案:

答案 0 :(得分:0)

您至少需要提供digest.base64_decode功能的vmod_digest

另外,你的正则表达式有点不对,应该是:

if (req.url ~ "^/clean/url\?v=") 

那就是说,为什么你的失效逻辑必须如此复杂?为什么不采用标准方式 - 即检查purger IP与定义的ACL的匹配,并使PURGE请求的URL无效(不是参数)。