如何设置 Varnish 以使其不缓存带有查询字符串的特定 URL?

如何设置 Varnish 以使其不缓存带有查询字符串的特定 URL?

服务器设置:Ubuntu 12.10、Varnish 3.0.2、Nginx 1.3.14,并安装 WordPress 3.5.1。

我们正在使用“随机重定向”插件,该插件会在 URL 处显示随机博客文章http://example.com/?random

我想将 Varnish 设置为不缓存上述 URL,因为目前“随机”帖子一直显示相同的帖子。

一个特定的代码片段来展示在 default.vcl 中放什么会非常有帮助。谢谢。

答案1

放入以下块vcl_recv就可以了:

if ( req.url ~ "^/\?random" ) {
  return (pass);
}

当你 时return(pass),你将跳过在缓存中查找请求的机会。

默认行为是进行一系列测试,以查看内容是否可能是动态的(是否设置了 cookies、是否需要身份验证、是否是 POST 请求等)——如果上述条件均不满足,Varnish 将返回到return(lookup)

相关内容