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

Kev*_*ton 4 ubuntu nginx varnish wordpress

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

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

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

显示在 default.vcl 中放置内容的特定片段将非常有帮助。谢谢。

Kvi*_*sle 8

将以下块放入vcl_recv应该这样做:

if ( req.url ~ "^/\?random" ) {
  return (pass);
}
Run Code Online (Sandbox Code Playgroud)

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

默认行为是进行一系列测试,以查看内容是否可能是动态的(是否设置了 cookie,是否需要身份验证,是否为 POST 请求,诸如此类) - 如果这些条件都不是遇到了,清漆回落到 return(lookup)