Enable Client Cache control Headers

Anand Shah imanandshah at gmail.com
Mon Jul 22 11:49:18 CEST 2013


I am trying to enable client side cache handling but not working for some
unknown reasons. I will get two parameters to read from origin's response


1. Edge-control: downstream-ttl=200s

2. Edge-control: cache-maxage=200s


This goes in vcl_fetch

  if ( beresp.http.Edge-control ) {
                if (beresp.http.Edge-control ~ "cache-maxage") {
                        set beresp.ttl =
std.duration(regsub(beresp.http.Edge-control, "cache-maxage=([0-9]+).*",
"\1s"), 0s);
                        #set beresp.http.Cache-Control =
regsub(beresp.http.Edge-control, ".*cache-maxage=([0-9a-z]+).*", "\1");
                        #set beresp.http.X-AGEBACKEND = "yes";
                } elseif ( beresp.http.Edge-control ~
"downstream-ttl=([0-9]+)s")  {
                        set beresp.http.Cache-Control =
regsub(beresp.http.Edge-control, "downstream-ttl=([0-9]+).*", "maxage=\1" +
                unset beresp.http.Edge-control;
                return (deliver);

It exists as soon as it matches any of the criteria and does not do a
lookup for other Cache parameter and delivers.

 1. It should enter the loop only if the Response header has Edge-Control.

2. check for matching parameters and set else follow the vcl.

3. If only cache-maxage contains it should check for Cache Control headers
below in the vcl (this does not work; want it to work)

No Idea what is going is wrong here.


   Anand Shah
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20130722/52903847/attachment.html>

More information about the varnish-misc mailing list