Dual server Varnish setup
Ben Dodd
B.Dodd at comicrelief.com
Thu Feb 10 17:37:52 CET 2011
Something like this:
director cr-backends round-robin {
.retries = 5;
{
.backend...
}
# Repeat the above entry for each web server.
}
director cr-varnish round-robin {
.retries = 4;
{
.backend...
}
# Repeat the above entry for each varnish server.
}
sub vcl_recv {
set req.backend = cr-varnish;
if (req.http.X-Via-Varnish || req.restarts > 3) {
# Request is coming from the other server.
# Ignore busy objects to avoid race condition.
set req.hash_ignore_busy = 1;
set req.backend = cr-backends;
} else {
set req.http.X-Via-Varnish = "true";
}
}
Thanks, Ben
On 10 Feb 2011, at 14:14, Martin Boer wrote:
> 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<B.Dodd at comicrelief.com> 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
>> varnish-misc at varnish-cache.org
>> http://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>>
>>
>
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit http://www.messagelabs.com/email
> ______________________________________________________________________
Comic Relief 1st Floor 89 Albert Embankment London SE1 7TP Tel: 020 7820 2000 Fax: 020 7820 2222 red at comicrelief.com www.comicrelief.com
Comic Relief is the operating name of Charity Projects, a company limited by guarantee and registered in England no. 1806414; registered charity 326568 (England & Wales) and SC039730 (Scotland). Comic Relief Ltd is a subsidiary of Charity Projects and registered in England no. 1967154. Registered offices: Hanover House, 14 Hanover Square, London W1S 1HP. VAT no. 773865187.
This email (and any attachment) may contain confidential and/or privileged information. If you are not the intended addressee, you must not use, disclose, copy or rely on anything in this email and should contact the sender and delete it immediately. The views of the author are not necessarily those of Comic Relief. We cannot guarantee that this email (and any attachment) is virus free or has not been intercepted and amended, so do not accept liability for any damage resulting from software viruses. You should carry out your own virus checks.
More information about the varnish-misc
mailing list