清漆缓存 - 缓存页面的时间长度?

时间:2012-09-18 08:21:50

标签: php apache caching varnish varnish-vcl

我对消失缓存的工作有疑问。 我用我的apache web服务器安装了varnish缓存并正确配置了相同的内容,以便我可以通过varnish缓存访问网页。

问题在于,我创建了一个'test.php'页面,可以通过浏览器访问。我已经更改了页面的内容,并在通过浏览器再次访问同一页面后立即进行了更改。第二次显示更改的内容。为什么会这样?据我所知,第二次也应该显示旧内容(?);因为清漆缓存将保留一个镜头间隔的网页内容。 我需要更改任何设置吗?请指教。

谢谢。

3 个答案:

答案 0 :(得分:2)

如果您每次刷新时都看到最新内容,那么您还没有正确设置清漆。

Varnish应位于与Apache不同的端口上,因此请确保您在清漆端口访问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标题,那么你知道它至少是通过清漆运行的。

答案 1 :(得分:2)

您在网页中设置的http标头可以决定是否对其进行缓存。关于此

,请阅读the varnish documentation

答案 2 :(得分:0)

此线程看起来很旧。但是可以在消失的配置中找到该值,将 VARNISH_TTL

的值设置为
# # Default TTL used when the backend does not specify one
VARNISH_TTL= 120

默认值为120秒,我相信您可以从那时开始更改它