Varnish, caching avanzato dei siti web

Ci sono milioni di siti web nel mondo che nascono da una idea e in pochissime settimane arrivano a picchi di traffico esorbitanti: è possibile che ciò sia avvenuto, magari più in piccolo, anche ai siti web dei nostri clienti o a siti italiani particolarmente famosi.

Varnish è un progetto opensource che ha come obiettivo quello di velocizzare l’accesso ai siti web, in maniera del tutto non invasiva, ovvero senza mettere mano al codice del proprio sito web. I fondatori del progetto lo definisco un web accelerator, in quanto l’obiettivo primario è quello di rendere estremamente veloce il front-end di un sito web. Per utilizzare Varnish dovete essere in possesso di una soluzione dedicata, una VPS o un server dedicato, in quanto la sua installazione richiede l’accesso alla macchina con privilegi root e qualche minima conoscenza del sistema Linux.

Se avete un sistema CentOS/Fedora/Debian/Ubuntu allora l’installazione è davvero semplicissima, si fa tutto tramite yum e apt-get, come descritto anche dalla documentazione ufficiale del progetto: http://www.varnish-cache.org/docs/2.1/installation/install.html. Varnish ha davvero tantissimi utilizzi e non riusciamo sicuramente a vederli tutti all’interno di questo articolo, tuttavia basti saper che con questo piccolo software davanti al vostro server web potete dirottare il traffico in base agli URL che vengono richiesti: esempio banale, www.hostingsolutions.it/cloud potrebbe essere redirettato automaticamente da Varnish su un server dedicato del nostro data center che gestisce solamente quella parte del sito, oppure potrebbe eseguire un caching più estremo dei contenuti, con regole diverse rispetto al resto.

Questo viene reso possibile da un linguaggio di configurazione denominato VCL che permette di scrivere dei file molto semplici per impostare il funzionamento di Varnish. Vediamo un esempio:

sub vcl_hash {
if (req.url ~ “^/cloud$”) {
set req.hash += req.http.cookie;
}
}

Questo comando non fa altro che richiedere di mettere in cache tutti le pagine della sezione www.hostingsolutions.it/cloud in modo da fornirle più rapidamente all’interno del nostro server, senza richiedere la loro elaborazione ogni volta al webserver. Varnish è composto da 2 demoni che lavorano in background nel nostro server, per cui si può avere in ogni caso un log dettagliato di quanto avviene all’interno del nostro sistema, oltre a utilizzare Varnish con altre soluzioni come Memcached.

Quel che Varnish fa di default è mettere in cache più contenuto possibile delle pagine del nostro sito web, quindi di fatto riesce e ridurre le richieste sul web server e su dbms come MySQL. Vi lasciamo con un esempio di come Varnish possa ad esempio aumentare notevolmente le performance di un sito che utilizza un forum con vBulletin: http://www.vbulletin.com/forum/entry.php/2440-vB4Mance-Part-5-Expert-Level-Boosting-vBulletin-Performance-with-Advanced-Caching

I nostri tecnici sono a disposizione per discutere eventuali chiarimenti o situazioni che Hosting Solutions può gestire attraverso i propri servizi dedicati. Consigliamo di leggere la documentazione di Varnish per farsi una idea delle numerose possibilità che questo progetto può fornire per migliorare la velocità dei propri siti web.