无法让Varnish缓存

时间:2014-02-13 00:36:18

标签: caching varnish varnish-vcl

我们正在举办一个主要的网球锦标赛网站,并试图在Rackspace上使用Varnish来帮助我们预期的流量。我们聘请了太多系统顾问帮助在我们的云服务器上安装Varnish,但无论出于何种原因,他们都无法使用Varnish来处理我们的脚本。一个典型的脚本可以在这里找到:

162.242.140.232/scoring/DemoGetOOP.php

这个脚本没有什么特别之处。它在标头中没有任何特殊的缓存命令,也不使用会话控制。您可以通过我们用于测试目的的底部的日期/时间来查看该页面未被缓存。我们设置了一个缓存的计时器页面:

162.242.140.232/scoring/timer.php

还有一个info.php页面:

162.242.140.232/scoring/info.php

奇怪的是,如果你第一次去timer.php,你可以看到它被缓存了10秒钟。但是,如果您随后运行我们的DemoGetOOP.php脚本并返回到timer.php,它就不再被缓存了。我们必须再次清除缓存或打开一个私有浏览器窗口来查看缓存。

if(req.url~“^ / scoring / DemoGetOOP.php”)和

if(req.url~“/scoring/DemoGetOOP.php”)

任何帮助将不胜感激!

  • 取值

2 个答案:

答案 0 :(得分:1)

首先,我将从设置正确的缓存标头开始,我更喜欢Cache-Control标头。 DemoGetOOP脚本还发送一个cookie,Varnish将通过缓存。

我建议检查一下varnishlog,它会让你清楚地了解Varnish决定缓存的原因。

答案 1 :(得分:0)

它们似乎对我很好,第一个链接的ttl为120秒,第二个链接的ttl为10秒,两者都工作正常。

我会说,当事情似乎不起作用时,请务必仔细检查一下。