I would also add weights so that each varnish prefers to ask its sibling say 250 times more often than asking the app-server. This will ensure that both varnishes will be as filled and as equal as possible. I don't know if 250 could be replaced by a larger number but this works for me.

Regards,
Martin

On 02/10/2011 02:46 PM, Laurence Rowe wrote:
On 8 February 2011 23:05, Ben Dodd<[email protected]>  wrote:
Given this functionality, does anyone know what the VCL is required to 
implement this dual server Varnish setup scenario?
http://varnish-cache.org/trac/wiki/VCLExampleHashIgnoreBusy
Something like this should work:


backend appserver { ... }
backend other_varnish { ... }

# Server 1
sub vcl_recv {
     set req.backend = other_varnish;
     if (req.http.X-Via-Varnish || !req.backend.healthy) {
         # Request is coming from the other server.
         # Ignore busy objects to avoid race condition.
         set req.hash_ignore_busy = 1;
         set req.backend = appserver;
     } else {
         set req.http.X-Via-Varnish = "true";
     }
}

# Server 2
sub vcl_recv {
     set req.backend = other_varnish;
     if (req.http.X-Via-Varnish || !req.backend.healthy) {
         # Request is coming from the other server.
         set req.backend = appserver;
     } else {
         set req.http.X-Via-Varnish = "true";
     }
}

Laurence

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




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

Reply via email to