为什么清漆不能正确caching我的索引页?

我在Ubuntu 11.10上安装了Apache 2之前的清漆。 我正在使用这个VCL文件:

backend default { .host = "127.0.0.1"; .port = "8080"; } sub vcl_recv { if (req.url ~ "^/web") { unset req.http.cookie; } if (req.url ~ "administration" || req.url ~ "preview" ) { return(pass); } if (req.http.Cookie) { set req.http.Cookie = ";"+req.http.Cookie; set req.http.Cookie = regsuball(req.http.Cookie, "; +", ";"); set req.http.Cookie = regsuball(req.http.Cookie, ";(mag_header)=", "; \1="); set req.http.Cookie = regsuball(req.http.Cookie, ";[^ ][^;]*", ""); set req.http.Cookie = regsuball(req.http.Cookie, "^[; ]+|[; ]+$", ""); if (req.http.Cookie == "") { remove req.http.Cookie; } } if (req.url ~ "\.(html|gif|jpg|jpeg|png|js|css)$") { unset req.http.cookie; return(lookup); } if (req.http.x-forwarded-for) { set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip; } else { set req.http.X-Forwarded-For = client.ip; } if (req.http.x-forwarded-host) { set req.http.X-Forwarded-Host = req.http.X-Forwarded-Host + ", " + server.ip; } else { set req.http.X-Forwarded-Host = server.ip; } return(lookup); } sub vcl_hash { hash_data(req.http.cookie); } sub vcl_fetch { set beresp.ttl =30m; } 

mag_header cookie的值只能有三个值中的一个,从而最大限度地减less要caching的variables的数量。 尽pipe(大约每60秒7次),但是在主页上我却看到了大量的错失,当时应该caching30分钟。

任何想法为什么不caching?

干杯,马克

编辑

以下是对主页的请求(不幸的是,我不确定这是否是我的问题的一个很好的例子,让我知道如果我应该抓另一个):

 29 RxHeader c User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11 29 RxHeader c Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 29 RxHeader c Referer: http://www.vmagazine.com/site/content/451/the-discreet-charm-of-kate-upton 29 RxHeader c Accept-Encoding: gzip,deflate,sdch 29 RxHeader c Accept-Language: en-US,en;q=0.8 29 RxHeader c Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 29 RxHeader c Cookie: vmag_header=vmag; __utma=232335640.704196202.1357394712.1357394712.1357394712.1; __utmb=232335640.25.10.1357394712; __utmc=232335640; __utmz=232335640.1357394712.1.1.utmcsr=popwatch.ew.com|utmccn=(referral)|utmcmd=referral|utmcct=/2013/01/04/krist 29 VCL_call c recv lookup 29 VCL_call c hash 29 Hash c vmag_header=vmag 29 Hash c / 29 Hash c www.vmagazine.com 29 VCL_return c hash 29 HitPass c 1682448674 29 VCL_call c pass pass 29 Backend c 19 default default 29 TTL c 1682448965 RFC 120 -1 -1 1357394808 0 1357394807 0 0 29 VCL_call c fetch 29 TTL c 1682448965 VCL 1800 -1 -1 1357394808 -0 29 TTL c 1682448965 VCL 120 -1 -1 1357394808 -0 29 VCL_return c hit_for_pass 29 ObjProtocol c HTTP/1.1 29 ObjResponse c OK 29 ObjHeader c Date: Sat, 05 Jan 2013 14:06:47 GMT 29 ObjHeader c Server: Apache/2.2.20 (Ubuntu) 29 ObjHeader c X-Powered-By: PHP/5.3.6-13ubuntu3.9 29 ObjHeader c Set-Cookie: vmag_header=vmag; path=/ 29 ObjHeader c Vary: Accept-Encoding 29 ObjHeader c Content-Encoding: gzip 29 ObjHeader c Content-Length: 16315 29 ObjHeader c Content-Type: text/html 29 ObjHeader c X-Pad: avoid browser bug 29 Gzip cu F - 16315 77445 80 80 130452 29 VCL_call c deliver deliver 29 TxProtocol c HTTP/1.1 29 TxStatus c 200 29 TxResponse c OK 29 TxHeader c Server: Apache/2.2.20 (Ubuntu) 29 TxHeader c X-Powered-By: PHP/5.3.6-13ubuntu3.9 29 TxHeader c Set-Cookie: vmag_header=vmag; path=/ 29 TxHeader c Vary: Accept-Encoding 29 TxHeader c Content-Encoding: gzip 29 TxHeader c Content-Type: text/html 29 TxHeader c X-Pad: avoid browser bug 29 TxHeader c Content-Length: 16315 29 TxHeader c Accept-Ranges: bytes 29 TxHeader c Date: Sat, 05 Jan 2013 14:06:47 GMT 29 TxHeader c X-Varnish: 1682448965 29 TxHeader c Age: 0 29 TxHeader c Via: 1.1 varnish 29 TxHeader c Connection: keep-alive 29 Length c 16315 29 ReqEnd c 1682448965 1357394807.567663431 1357394807.963178158 0.000065088 0.395375967 0.000138760 

问题是我的代码中有一个session_start()调用,它添加了一个PHP_SESSION cookie,意味着caching从来没有打过。