VCL per saintmode e grace-Varnish Cache 4.1

Allora, senza troppi fronzoli perche’ immagino che chi sia arrivato qui abbia bisogno di un pezzo di VCL da copiare ed incollare nel proprio VCL file…ecco qui:

vcl4.0;
import directors;
sub vcl_init {

 # we create two saint-mode backends
new sm1 = saintmode.saintmode(server1, 5);
new sm2 = saintmode.saintmode(server2, 5);
#we group the backends in the same cluster
new fb = directors.fallback();
fb.add_backend(sm1.backend());
fb.add_backend(sm2.backend());
}

sub vcl_backend_fetch {
set bereq.backend = fb.backend();
}

sub vcl_backend_response {
#we set both TTL and grace values which will be used by the default vcl_hit subroutine
set beresp.ttl = 1s;
set beresp.grace = 10s;
if (beresp.status > 500) {
#the failing backend is blacklisted and we try to fetch content from another server
saintmode.blacklist(5s);
return (retry);
}
}

Per chi fosse interessato ad approfondire un po’ l’argomento, ecco qui un riassunto veloce:
Una delle capacita’ di Varnish Cache e’ sempre stata quella di gestire al meglio dei backend servers che si comportano maluccio e che non sono completamente affidabili.
La soluzione usata da sempre e’ combianare Saint Mode e Grace mode.

Saint mode:

Saint mode permette di gestire al meglio backend servers che “falliscono” per specifiche richieste. Il concetto e’ facile: esiste una blacklist per ogni backend, il backend viene segnato come “sick” per le richieste che non riesce a gestire per un determinato periodo di tempo. Varnish, di tutta risposta, cerca di servire contenuto un prendendolo da un altro web server oppure po’ piu’ vecchio(stale content).

Grace mode:

Grace mode ordina a Varnish di servire del contenuto anche se il suo TTL e’ espirato, questa modalita’ e’ indispensabile quando i backends non sono considerati “healthy” e non sono in grado di servire contenuto nuovo e fresco.

In Varnish 3.0 saint mode era una core feature, la stessa non e’ stata presente in Varnish 4.0, ma ha fatto il suo ritorno(a grande richiesta) in Varnish 4.1.

Come sempre, scusate per lo scarso italiano e se avete domande scrivete pure :))

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...