Two Different Backends

Michael Alger varnish at mm.quex.org
Tue Mar 22 10:54:17 CET 2011


On Tue, Mar 22, 2011 at 10:42:54AM +0100, Stefan Welschhoff wrote:
> 
> I want to configure varnish with two different backends. But with
> my configuration varnish can't handle with both.

There is a logic error here:

>         if (req.url ~"^/partner/")
>          {
>                 set req.backend = directory1;
>                 set req.http.host = "partnerservicesq00.xxx.de";
>          }

The above if-clause will be run, and then, regardless of the
outcome, the next if-else-clause will be run:

>         if (req.url ~"^/schaden/")
>         {
>                 set req.backend = directory2;
>                 set req.http.host = "servicesq00.xxx.de";
>          }
>         else
>         {
>            set req.backend = default;
>         }

This means that if the URL matched /partner/ the backend will get
set to back to default, because it falls through to the "else".

I think you want your second if for /schaden/ to be an elsif.

          if (req.url ~ "^/partner/")
          {
          }
          elsif (req.url ~ "^/schaden/")
          {
          }
          else
          {
          }

If that's not the problem you're having, please provide some more
information, i.e. backend configuration and error messages if any,
or the expected and actual result.




More information about the varnish-misc mailing list