取消 varnish 缓存,使其只进入首页的后端

取消 varnish 缓存,使其只进入首页的后端
if (req.url == "/") {
  return(pass);
}

这是否允许我们仅在主页上取消清漆(例如:www.prism.com)而不是其他页面,例如www.prism.com/product

我认为这也会起作用,但我不确定,上面的是更好的选择吗?

if (req.url ~ "") {
  return(pass);
}

我只想让它跳过主页上的缓存,因为我们使用它为所有用户设置 cookie。我需要修改缓存,因为我意识到一些用于生成 cookie 的代码在高峰时段不起作用。

答案1

以下代码确实是绕过主页缓存的正确方法:

if (req.url == "/") {
    return(pass);
}

但是,请考虑此操作的影响。主页是大多数用户的入口点。无法缓存它将严重影响您的性能。

问题是:您在主页上设置了什么样的 cookie?

  • 这个 cookie 真的需要吗?
  • 是否可以由 Varnish 合成并创建 cookie?
  • 是否可以用 Javascript 设置 cookie?

请考虑您的选择并尝试寻找一个解决方案,其中最重要的页面仍然被缓存。

作为副作用,您需要编写必要的 VCL 来处理Cookie被视为可缓存的传入请求的请求标头。

相关内容