varnish as traffic director

Hettwer, Marian mhettwer at team.mobile.de
Thu Mar 31 15:06:09 CEST 2011


On 31.03.11 14:53, "Robert Shilston" <rtshilston at gmail.com> wrote:

>> 
>> On 30.03.11 04:52, "AD" <straightflush at gmail.com> wrote:
>> 
>>> sub vcl_recv { 
>>> if (req.url ~ "^/search") {
>>>   set req.backend = search-backend;
>>> }
>>> elseif (req.url ~ "^/items") {
>>>   set req.backend = items-backend;
>>> }
>>> 
>>> }
>> 
>> By the way, would it also be okay to write it like that?
>> 
>> sub vcl_recv {
>> 
>> set req.backend =  catchall-backend;
>> 
>> 
>> if (req.url ~ "^/search") {
>>    set req.backend = search-backend;
>>  }
>> if (req.url ~ "^/items") {
>>    set req.backend = items-backend;
>>  }
>> 
>> }
>
>
>Logically it's ok.  But, it's probably slightly better in terms of
>efficiency to use an elseif pattern.  This is you'll do the first pattern
>match (/search) on every request, and then you'll also do the pattern
>match for items, even if you'd already matched to /search.  Two pattern
>matches rather than one is undesirable, and even more so if you ended up
>having lots and lots of matches to do.

Understood! Thanks for your explanation :-)


Cheers,
Marian





More information about the varnish-misc mailing list