Php Varnish cache—页面的缓存时间有多长?
我对“消失缓存”的工作方式有疑问。 我用ApacheWeb服务器安装了varnish缓存,并正确配置了它,这样我就可以通过varnish缓存访问网页 问题是,我已经创建了一个“test.php”页面,可以通过浏览器访问。我已经更改了页面内容,并立即通过浏览器再次访问同一页面。第二次显示更改的内容。为什么会这样?据我所知,第二次也应该显示旧的内容(?);因为varnish缓存将在快照间隔内保留网页内容。 是否有任何设置需要更改?请给我一些建议Php Varnish cache—页面的缓存时间有多长?,php,apache,caching,varnish,varnish-vcl,Php,Apache,Caching,Varnish,Varnish Vcl,我对“消失缓存”的工作方式有疑问。 我用ApacheWeb服务器安装了varnish缓存,并正确配置了它,这样我就可以通过varnish缓存访问网页 问题是,我已经创建了一个“test.php”页面,可以通过浏览器访问。我已经更改了页面内容,并立即通过浏览器再次访问同一页面。第二次显示更改的内容。为什么会这样?据我所知,第二次也应该显示旧的内容(?);因为varnish缓存将在快照间隔内保留网页内容。 是否有任何设置需要更改?请给我一些建议 谢谢。如果您每次刷新时都看到最新的内容,则说明您没有正
谢谢。如果您每次刷新时都看到最新的内容,则说明您没有正确设置varnish Varnish应该位于Apache的另一个端口上,因此请确保访问Varnish端口上的test.php 您可以将其放入配置中,查看是否正在缓存
sub vcl_deliver {
# Add a header to indicate a cache HIT/MISS
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
return (deliver);
}
如果您看到X-Cache标头,那么您知道它至少正在运行。您在页面中设置的http标头在决定是否缓存它们方面起着重要作用。阅读此内容此线程看起来很旧。但是这个值可以在消失配置中找到,设置VARNISH\u TTL的值
# # Default TTL used when the backend does not specify one
VARNISH_TTL= 120
默认值是120秒,我相信您可以从这一点更改它