[Varnish] #465: regsub seems no use in sub_recv as a hash key

Varnish varnish-bugs at projects.linpro.no
Tue Mar 10 09:24:32 CET 2009

#465: regsub seems no use in sub_recv as a hash key
 Reporter:  flyincat      |        Type:  defect
   Status:  new           |    Priority:  normal
Milestone:                |   Component:  build 
  Version:  2.0           |    Severity:  normal
 Keywords:  hash req.url  |  
 I'm using varnish 2.0.2 right now. But I encountered a problem with the
 varnish cache hash. I reset req.url by
         if (req.url ~ ".(jpg|gif|png)\?.*") {
                 set req.url = regsub(req.url, "\?.*", "");
 cause my urls are all followed with a parameter, and I want to cache the
 pictures. however, when I visited a same url with a different parameter,
 varnish told me it's missed and fetch content from the backend server.
 (For example, I first visit a url:
 http://www.example.com/h/Mzatest.jpg?m=0301, then I change the parameter
 0301 to 0302 and retrieve again.It will told me it's missed)
 I solved this problem by reset hash key in sub_hash:

 sub vcl_hash {
         if (req.url ~ ".(jpg|gif|png)\?.*") {
                 set req.hash += regsub(req.url, "\?.*", "");
         else {
                 set req.hash += req.url;

 It works!

Ticket URL: <http://varnish.projects.linpro.no/ticket/465>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator

More information about the varnish-bugs mailing list