Il segreto per rendere il tuo sito 10 volte più veloce con Varnish

Il segreto per rendere il tuo sito 10 volte più veloce con Varnish

varnish logoSe hai un Blog, un e-commerce o un sito aziendale non trascurare l’importanza della velocità di caricamento, in questo post troverai uno dei metodi più utilizzati dai siti con migliaia di visite.

Vi siete mai chiesti come fanno i siti più visitati del web, come i quotidiani online o gli e-commerce più quotati, ad essere comunque così reattivi supportando tutto quel traffico?

Semplice, dispongono di cluster web e database ma, oltre a questo, uno degli strumenti più importanti che utilizzano è sicuramente un web accelerator come Varnish ( varnish-cache.org ) che, essendo un http reverse proxy, si occupa di creare una cache a livello frontend per aumentare la velocità di caricamento del sito web. Molti dei siti più visitati al mondo utilizzano Varnish, alcuni esempi sono Twitter, Facebook, Vimeo, Wikipedia, The New York Times, ecc.

Ad ogni modo, prima di affrontare l’argomento chiave di questo post, ti sei mai chiesto perché è molto importante che il tuo sito sia veloce? La risposta può sembrare ovvia ma i motivi non lo sono affatto, ecco i più importanti:

  • Google dichiara che la velocità di risposta del sito web è un importante fattore per il rancking nei suoi risultati di ricerca;
  • Gli utenti sono impazienti, la velocità del sito è direttamente proporzionale al numero di conversioni (pensate all’importanza di questo fattore quando si parla di e-commerce);
  • Un sito veloce viene considerato più “credibile” dagli utenti.

E se questi motivi non fossero sufficienti, considerate che Varnish offre anche alcuni vantaggi da non sottovalutare. Il primo è che non serve mettere mano al codice, né lato server né lato frontend. Il secondo vantaggio: il carico del server può diminuire drasticamente, questo perché dopo la prima richiesta al server web, il resto delle richieste (fino a quando la cache viene invalidata) viene restituito da Varnish direttamente dalla memoria. Varnish, infatti, si occupa di salvare quanto restituisce il server web (pagine html, javascript, css, immagini) già elaborati, in una porzione di memoria RAM, sollevando la CPU da elaborazioni e il Disco dalle letture dei file che altrimenti dovrebbe svolgere ad ogni richiesta dell’utente.

Se pensiamo alle ultime versioni di CMS come WordPress o Drupal e sistemi di e-commerce come Magento o PrestaShop, bisogna sottolineare che non brillano certo per prestazioni, anzi, richiedono importanti risorse al server che li ospita e una buona parte del lavoro di implementazione è senz’altro dedicata alla ottimizzazione della velocità di risposta.

Ecco uno schema che descrive il funzionamento di Varnish:

Varnish

Venendo quindi al dunque, come è possibile utilizzare Varnish per il proprio sito web?

Per poter installare Varnish è consigliabile disporre di un server di cui possedete l’accesso root, come un Server Dedicato ma anche un Virtual Private Server (VPS).

Inoltre, il web server (Apache, Ngix, IIS, ecc.) non deve necessariamente risiedere sullo stesso server – in molti casi Varnish risiede su un proprio server – mentre il web server (che in Varnish viene definito “backend”) su altri server.

Varnish inoltre offre la funzionalità di Load Balancer operando con più backend. Infine, un altro dei punti di forza di Varnish è la sua flessibilità, dimostrata dal fatto che dispone di un linguaggio di configurazione VCL (Varnish Configuration Language) che permette di realizzare configurazioni e comportamenti molto complessi.

Vediamo ora come installare e configurare Varnish:

Innanzitutto dobbiamo installare il software e, nel nostro esempio, ci rivolgiamo a un server CentOs 7.

Step 1: Aggiungere il repository EPEL

Come prima cosa è necessario aggiungere il repository EPEL:

yum install epel-release
yum -y update

 

Step 2: Installare Varnish

A questo punto installiamo Varnish lanciando il seguente comando:

yum -y install varnish

Step 3: Avviare Varnish

Configuriamo Varnish perché si avvii automaticamente al boot del server:

systemctl enable varnish

In questo caso però dobbiamo provvedere ad avviare Varnish manualmente:

systemctl start varnish

Per accertarci che Varnish sia attivo possiamo eseguire il seguente comando:

systemctl status varnish

Con i seguente comando invece possiamo ottenere la versione di Varnish installata:

varnishd -V

Infine, ecco come configurare Varnish:

Step 4: configurazione parametri di avvio di Varnish

Di default Varnish è configurato per rispondere sulla porta 6081, mentre si aspetta che il web server risponda in localhost sulla porta 8080, sarà necessario configurare il webserver (Apache, Ngix, etc.) per rispondere alla porta indicata. Perciò, mentre configuriamo Varnish per rispondere alla porta HTTP standard, si dovrà editare il seguente file con il comando:

vi /etc/varnish/varnish.params

Modificare la riga VARNISH_LISTEN_PORT=6081 in VARNISH_LISTEN_PORT=80

Riavviare Varnish con il comando:

systemctl restart varnish

Da questo momento, richiamando il webserver, tutte le chiamate saranno elaborate da Varnish che si interporrà tra il client web e il webserver accelerando la navigazione come indicato in precedenza.

Step 5: Posizione dei file di configurazione

Il file di configurazione di base di Varnish si trova su:

/etc/varnish/default.vcl

Nonostante la configurazione presente al momento dell’installazione sia piuttosto minima, Varnish è comunque molto versatile e utilizza un linguaggio di configurazione molto potente che permetterà, con una semplice ricerca su Google, di trovare template già pronti per i CMS più diffusi.

Il nostro staff può supportarvi nella configurazione di Varnish secondo le vostre esigenze.

Potrebbe anche interessarti

Proxmox Virtual Environement 6.4
Proxmox VE 6.4 le novità

Scopriamo le novità della versione 6.4 della piattaforma di virtualizzazione Proxmox Virtual Environment! La nuova versione introduce le funzionalità Single File Restore e Live Restore,

Read More »

Argomenti

Seguici