Multiple instances of varnish

Mike Franon kongfranon at gmail.com
Fri May 6 18:27:42 CEST 2011


Thanks that is even easier then what I was trying to do was bypass F5

like this

if (req.http.user-agent ~ "(.*bingbot.*|.*control.*|.*crawler.*)") {
   set req.backend = bots_81;
}


But was going to be a really long list.  This will be easier to implement.



On Fri, May 6, 2011 at 3:54 AM, Hettwer, Marian <mhettwer at team.mobile.de> wrote:
>
> On 05.05.11 19:00, "david raistrick" <drais at icantclick.org> wrote:
>
>>On Thu, 5 May 2011, Mike Franon wrote:
>>
>>> I am trying to see if there is a way with using a single instance
>>>
>>> 1)  Varnish using VCL to recognize that it is a bot
>>>
>>> 2)  If it is a bot request, varnish will then use a different backend.
>>
>>Sure.  You don't need multiple varnishes for this.
>>
>>Define your backend, create a rule that matches on the headers you're
>>matching on, set the backend.
>>
>>I don't have anything that matches on user agents (which is what I assume
>>you're looking at on the F5), and I'm not going to look at the docs to
>>find out how to match on them, but an example that does the same thing
>>for
>>URIs:
>
> If the F5 is able to recognize a bot, let it just insert a custom http
> header (X-F5-Found-Bot or something like that) and later match in vcl_recv
> on this header.
>
> Pretty much like this:
>
> sub vcl_recv {
>  if (req.http.X-F5-Found-Bot) {
>  set req.backend = backendforbots;
>        }
> }
>
>
>
> HTH,
> Marian
>
>




More information about the varnish-misc mailing list