VCL config file for specific URLs

Robert Shilston robert at shilston.com
Sat Jan 9 11:48:27 CET 2010


In our vcl_recv, we use things like:

        if (req.url ~ "wp-admin") {
                pass;
        }
        if (req.url ~ "/blog/wp-login.php") {
                pipe;
        }

        // Don't cache from some IPs
        if (client.ip == "1.2.3.4") {
                pass;
        }


Is that any help?


Rob

pub crawler wrote:
> Thanks for your input Rob.
>
> JPEG's, GIFs, etc. are all fine to cache, as they are very static in
> nature in our environment.
> Currently we have Varnish setup to cache:
> ico|html|htm|bmp|png|gif|jpg|jpeg|swf|css|js|rss|xml
>
> Our issue is our app servers get overwhelmed, become a large
> bottleneck and eventually fail under high load.  We can add more
> servers in horizontal scaling mode, but creates more wasted power,
> more machines to maintain, etc.  Our need it to address raised site
> load mostly due to search spiders that are out of control but
> necessary.
>
> So we thought getting Varnish to cache all these dynamic pages would
> alleviate load on our application servers.
>
> Essentially, it is fine for Varnish to cache all of our ColdFusion
> pages (.cfm), except a handful of pages like these:
> http://www.website.com/Template/members/
> http://www.website.com/Template/dsp_addreview.cfm/flat/ID=157
> etc.
>
> Any idea of how to accomplish the cache exception of these handful of pages?
>
>
>   
>> I'm not sure of the best way to supply a large list of URLs to pipe, but I'd
>> suggest that you think about turning the logic around.  I don't know the
>> nature of your site, but presumably it's safe to cache all JPEGs and
>> similar.  How much load would be alleviated by caching everything whose
>> content type is not text/html?
>>
>> Then, for text/html, is it possible for you to edit your backend site and
>> add a header such as "X-Is-Cacheable: yes" in your index.cfm and Review.cfm?
>>  Then, in vcl_fetch, you'd do something like:
>>
>> if content-type = text/html
>>   if X-Is-Cacheable = yes
>>       cache this
>>   else
>>       don't cache
>>   end if
>> else
>>   cache this
>> end if
>>
>>
>> You might find this approach simpler than writing a big long list of pages
>> not to cache.
>>
>>
>> Rob
>>
>>     
> _______________________________________________
> varnish-misc mailing list
> varnish-misc at projects.linpro.no
> http://projects.linpro.no/mailman/listinfo/varnish-misc
>   




More information about the varnish-misc mailing list