清漆缓存不会第一次命中

Varnish cache doesn't hit first time

我刚刚学习并实施了 varnish 反向代理来提高我的网站速度。

一切正常,但有一些小问题困扰着我。

出于某种原因,当我第一次检查页面 TTFB 时,我得到 .999s,但是,当我重新运行测试时,数字下降到 .237s。

我使用以下网站检查 TTFB: https://www.webpagetest.org

我的网站是: https://www.findfestival.com/

这让我想知道对网站的第一个请求是否命中了缓存。当我使用 curl 时,我可以看到 x-varnish,但奇怪的是第一次点击链接比第二次点击链接慢。 (特别是在移动设备上)

这是我的 default.vcl 是:

谢谢,

PS,我已经看到这个 post 并且已经尝试过这个解决方案,但没有成功!

Varnish Cache first time hit

看到 X-Mod-Pagespeed 在你的 header 和简约的 VCL 中,结论是你需要看一下 Downstream Caching 并确保 PageSpeed 不会发送Cache-Control: max-age=0, no-cache 这在很大程度上破坏了 Varnish 缓存。

根据我自己的经验,即使应用了下游缓存配置,Pagespeed 也不能很好地与 Varnish 配合使用。

它 "loves" 发送上述 header 无论如何。即使您设法关闭此行为,它也会导致 PageSpeed 自己的资产没有适当的 Cache-Control header 以及一些更有趣的问题,例如在必须进行重新信标时导致 Varnish "hit-for-pass" - 这真的很糟糕,会进一步破坏缓存。

也可以看看 possible configurations。您可能希望将 PageSpeed 置于您的 SSL 终结器级别(选项 #1)——这样您就不需要下游缓存配置并且 PageSpeed 将是 Varnish 的 "in front"。