Corsi on-line

Cache dei contenuti statici in Apache e Nginx

Negli ultimi tempi si è discusso lungamente su quanto la velocità di caricamento delle pagine di un sito Web possa influenzare il posizionamento di quest’ultimo tra i risultati delle ricerche di Google; per quanto le tematiche SEO siano fondamentali, è opportuno sottolineare che queste dovrebbero essere considerate secondarie rispetto a quelle riguardanti l’importanza di curare quanto più possibile la user experience, soprattutto ai fini della fidelizzazione.

nginxAnche ammettendo che la velocità non rappresenti un fattore rilevante per i motori di ricerca e che un sito Internet molto lento possa comunque scalare le vette della SERP, è probabile che nel breve periodo le latenze finiscano per scoraggiare gli utenti dal proseguire la navigazione dopo un primo accesso, così come potrebbero risultare determinanti nel convincere un utilizzatore a non visitare nuovamente la medesima risorsa.

Un paio di secondi di attesa in più possono significare una o più vendite in meno, meno traffico, meno interesse da parte degli inserzionisti, meno conversioni e, in conclusione, meno entrate. Effetti nefasti che in buona parte potrebbero essere evitati con una maggior cura delle procedure di caching. Il Web server Apache e il sempre più diffuso engine HTTP alternativo Nginx permettono di memorizzare in cache alcuni contenuti statici per evitarne il caricamento da zero in seguito ad una richiesta successiva.

Parliamo di risorse come per esempio i fogli di stile CSS, le immagini, i documenti Pdf, i file multimendiali e gli script JavaScript che in Apache potrebbero essere allocati in cache tramite un file .htaccess contenente le seguenti istruzioni:

<IfModule mod_headers.c>
    <filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|swf|css)$">
        Header set Cache-Control "max-age=604800, public"
    </filesMatch>
</IfModule>

Nel caso specifico si è scelto di mantenere in cache i contenuti statici per la durata di una settimana, 604800 secondi, ma si tratta di un valore che potrà essere definito arbitrariamente sulla base delle proprie esigenze. In Nginx otterremo il medesimo effetto con:

server {
  ..
  location ~ \.(..|css|js|..)$ {
    expires 7d;
  }
}

La scelta di quali altre risorse memorizzare in cache viene lasciata al lettore, per il momento si noti come la durata dell’archiviazione sia stata espressa in questo caso in giorni (7 giorni = 7d) e non in secondi.

Post correlati
I più letti del mese
Tematiche