如何在 Varnish VCL 中提取和解码 base64 参数
How to extract and decode base64 parameter in Varnish VCL
为了使缓存无效,我按以下方式对 url 进行编码:
$clean_url = base64_encode( $url );
http://url_of_the_varnish_host_to_clean/clean/url?v=$clean_url
我想捕获这个 url 以在我的 vcl 文件中清理和解码它。
我是这样收到请求的:
if (req.url ~ "^/clean/url?v=")
但是我不知道如何捕获参数并对其进行解码。
您至少需要 vmod_digest,它提供 digest.base64_decode
功能。
另外,你的正则表达式有点不对,应该是:
if (req.url ~ "^/clean/url\?v=")
也就是说,为什么您的失效逻辑必须如此复杂?为什么不以标准方式进行 - 即检查清除器 IP 与定义的 ACL 的匹配并使 PURGE 请求(不是参数)的 URL 无效。
为了使缓存无效,我按以下方式对 url 进行编码:
$clean_url = base64_encode( $url );
http://url_of_the_varnish_host_to_clean/clean/url?v=$clean_url
我想捕获这个 url 以在我的 vcl 文件中清理和解码它。 我是这样收到请求的:
if (req.url ~ "^/clean/url?v=")
但是我不知道如何捕获参数并对其进行解码。
您至少需要 vmod_digest,它提供 digest.base64_decode
功能。
另外,你的正则表达式有点不对,应该是:
if (req.url ~ "^/clean/url\?v=")
也就是说,为什么您的失效逻辑必须如此复杂?为什么不以标准方式进行 - 即检查清除器 IP 与定义的 ACL 的匹配并使 PURGE 请求(不是参数)的 URL 无效。