Hi,

I’m trying to configure vcl_fetch for a particular scenario. In certain 
situations, say a particular aspect of a page fails to render correctly and we 
don’t want this to be cached in varnish, the backend server is appending a 
particular header to the response, in this case “X-SP-NoCache: yes”. In 
vcl_fetch I am then checking for this header, and switching to pass mode. The 
problem is, when the header is then removed from that page, it still continues 
to pass it instead of delivering it (it doesn’t get inserted into the cache). 
It goes as follows (assuming a new varnish instance has just been started):

Action                                                   X-SP-NoCache           
                        X-Cache (set in vcl_deliver)
Browser to Url                                   yes                            
                             Miss
Refresh page                                     yes                            
                             Miss
Change X-SP-NoCache header   no                                                 
          Miss
Refresh page                                     no                             
                              Miss
Purge page with varnishadm      no                                              
             Miss
Refresh page                                     no                             
                              Hit

The vcl_fetch function looks as follows:

Sub vcl_fetch {
    If (beresp.http.X-SP-NoCache ~ “(?i)yes”) {
        Return (pass);
    }

    //Other code is included in here, passes control to deliver or pass 
depending on other criteria
}

The thing that’s confusing me, and that’s leading me to believe it isn’t my vcl 
code that’s the problem, is that flushing the cache is fixing the issue. I 
don’t understand how flushing the cache can affect the behaviour of any page 
which isn’t currently stored in the cache? I’m running varnish-2.1.3 if that’s 
relevant. Any help would be greatly appreciated.

Thanks,

Connor Walls
_______________________________________________
varnish-misc mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Reply via email to