清除caching对象,并在重新validation宽限期的过程中过期

我已经将Varnish 4.0添加到运行cPanel的CentOS 6服务器来caching我开发的网站。 我试图实现stale-while-revalidate以确保所有用户都获得一个页面的caching版本,这样,如果2分钟的max-age已经过期,返回一个陈旧的页面副本就足够了3个月期间,服务器将在必要时在后台重新生成caching对象。

返回的响应头示例如下:

 Accept-Ranges:bytes Age:539 Cache-Control:public, max-age=120, stale-while-revalidate=7889220 charset:utf-8 Connection:keep-alive Content-Length:54511 Content-Type:text/html; charset=utf-8 Date:Mon, 14 Sep 2015 12:52:00 GMT Expires:Mon, 14 Sep 2015 12:54:01 GMT grace:7889220s Pragma:cache X-Cache:HIT X-Cache-Hits:2 

这个机制似乎有效。 在上面的情况下,返回一个caching副本,并且下一个请求正确地返回Age值设置为10的副本,例如(自caching在后台重置后已过去10秒)。 但是,在将来的某个时间点(以小时为单位),对同一页面的请求会导致caching未命中,并且该页面直接触发后端,并且响应标头指示的Age为0。不能告诉为什么陈旧的副本不被返回。

我没有Varnish的经验,而且我正在使用Mattias Geniar的示例Varnish 4.0模板的一个版本,对于Craft CMS (一个构build网站的PHP CMS)进行了修改。

VCL文件中是否有可能导致caching未命中的内容,或者这可能是服务器configuration问题?