Individual Cache for different Browsers?
Klapproth, Martin
Klapproth.M at sportresult.com
Thu Dec 2 13:32:35 CET 2010
Hello,
I have requested one page with different browsers (firefox, chrome). If
I make a second request with the same browser I get the object from the
varnish cache. But if the first browser makes the first request and the
second browser makes the second one I get a miss.
In my configuration the hash will be determined only by the url and host
header (nothing else). Client side Cache-Control or Pragma headers were
totally ignored. Here a snippet out of my vcl config:
sub vcl_recv {
unset req.http.Pragma;
unset req.http.Cache-Control;
...
}
sub vcl_hash {
set req.hash += req.url;
if (req.url == "/") {
set req.hash += req.http.host;
}
return (hash);
}
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
unset resp.http.X-Varnish;
}
Here the 2 browser requests:
Request 1 by Firefox:
Host: XXXXX
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12)
Gecko/20101026 Firefox/3.6.12
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: XXXXX
Cookie: __utma=31143592.1898076621.1291293810.1291291810.1291291810.1;
__utmb=31173592; __utmc=31543592;
__utmz=31143592.1291291810.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(n
one); __utma=61459198.633465754.1291291861.1291241861.1291291861.1;
__utmb=6145912.2.10.1291291861; __utmc=61459198;
__utmz=61459198.1291881861.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(n
one
Response 1 (Request made by Firefox)
Server: nginx
Date: Thu, 02 Dec 2010 12:11:26 GMT
Content-Type: text/html; Charset=utf-8
Connection: keep-alive
Keep-Alive: timeout=20
Cache-Control: public, max-age=600
Expires: Thu, 02 Dec 2010 12:21:26 GMT
Last-Modified: Thu, 02 Dec 2010 12:11:26 GMT
CacheInfo: 600
Content-Encoding: gzip
X-Cache: MISS // that's ok, cause the object wasn't cached
before
Content-Length: 7978
Age: 0
Request 2 by Chrome
Accept:
application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,i
mage/png,*/*;q=0.5
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)
AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7
Response 2 by Chrome
Age: 0
Cache-Control: public, maxage=600
CacheInfo: 600
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 8004
Content-Type: text/html; Charset=utf-8
Date: Thu, 02 Dec 2010 12:11:56 GMT
Expires: Thu, 02 Dec 2010 12:21:56 GMT
Keep-Alive: timeout=20
Last-Modified: Thu, 02 Dec 2010 12:11:56 GMT
Server: nginx
X-Cache: MISS // That's not ok, cause the request was done 30 sec
after the first one ant the max-age is 600
The nginx is only proxying the request to varnish and handles gzip. The
object will be cached (can see it in varnishlog).
Can you help me with my problem?
Thanks
Martin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20101202/ca848191/attachment-0003.html>
More information about the varnish-misc
mailing list