Informazioni generali
Cos’è una cache?
Una cache è un memoria intermedia che rende più efficiente il richiamo di dati da una memoria. In questo modo è possibile rispondere direttamente a varie richieste senza che si renda necessaria l’esecuzione di calcoli. Il risultato del primo calcolo della richiesta è già presente nella cache è può pertanto essere caricato più rapidamente. Occorre tenere presente che esistono diversi tipi di cache. Nelle applicazioni web si tratta principalmente della cache del server (in questo caso la cache Nginx), della cache dell’applicazione o della cache del browser.
Sul lato server sono soprattutto i contenuti dinamici a beneficiare del caching, poiché per essere generati richiedono il più delle volte processi complessi e sono spesso collegati in background a consultazioni di database.
La cache Nginx di Hostpoint
Hostpoint permette di utilizzare Nginx nello shared hosting (Web hosting Smart e Business) e in tutte le offerte di Managed Flex Server come cache HTTP lato server. Nello shared hosting, oltre al server web Apache è possibile attivare anche Nginx per salvare contenuti dinamici nella cache. Sui Managed Flex Server, a partire dalla dimensione “M”, Nginx può inoltre essere gestito anche come server web e cache dalla propria applicazione.
Il caching può essere attivato e configurato per tutti i prodotti nel Pannello di controllo Hostpoint nelle impostazioni del sito web. Di norma sono le intestazioni HTTP a stabilire se e quanto a lungo i contenuti possono essere salvati nella cache.
Intestazioni HTTP
Impostare le relative intestazioni HTTP è fondamentale nel caching. Con questa operazione tutte le possibili cache vengono informate sull’eventuale memorizzazione dei contenuti e sui loro tempi di permanenza nella cache. Le intestazioni influiscono non solo sul comportamento di una cache lato server come Nginx, ma controllano anche il comportamento di proxy interposti e, da ultimo, la cache del browser. Tra le intestazioni HTTP che influenzano il caching ricordiamo, ad esempio, “Cache Control” e “Expire”.
Le richieste prive di corrispondenti intestazioni non vengono di norma salvate nella cache. Questa situazione si verifica in Hostpoint in particolare anche nel caso di Nginx, salvo che nel Pannello di controllo Hostpoint le impostazioni siano state configurate esplicitamente in modo diverso.
La cache Nginx di Hostpoint salva di default soltanto contenuti dinamici, poiché i contenuti statici possono di norma essere caricati direttamente dalla rapida cache del file system. Tuttavia, può essere utile impostare per contenuti statici, come ad esempio le immagini, corrispondenti intestazioni HTTP: in questo modo, infatti, il browser può conservare tali contenuti più a lungo nella cache locale.
Contenuti e durate cache consigliati
Prima di configurare la cache e di modificare l'applicazione web, è opportuno riflettere sui contenuti che si desidera salvare e sui loro tempi di permanenza nella cache. La cache viene di norma controllata tramite intestazioni HTTP (si veda sopra).
Nel caso di contenuti soggetti a frequenti modifiche è consigliabile mantenere ridotta la durata della cache. Questo accorgimento è importante ad esempio per i siti di notizie, poiché le modifiche sarebbero altrimenti visibili soltanto allo scadere della cache. I siti web che vengono modificati solo di rado possono invece essere conservati nella cache molto più a lungo.
Occorre inoltre tenere presente che il primo richiamo dopo la scadenza della durata della cache può richiedere più tempo del solito, poiché la pagina deve essere ricalcolata. È dunque consigliabile attenersi alla seguente regola: impostare la cache in modo che duri il più a lungo possibile, ma mai oltre il necessario.
Si prega di tenere presente che nel Pannello di controllo Hostpoint è sì possibile svuotare la cache Nginx, tuttavia questa operazione non influisce su eventuali proxy e sulla cache del browser. Lo svuotamento attivo della cache Nginx è dunque d’aiuto solo quando il caching dei contenuti viene autorizzato per un periodo troppo lungo.
Aree protette da password
In linea di principio, per motivi di sicurezza le aree protette da password non vengono temporaneamente salvate da Nginx nella cache.
Svuotamento della cache
In alcuni casi può essere consigliabile svuotare la cache Nginx nel Pannello di controllo Hostpoint. Ad esempio, è consigliabile effettuare questa operazione quando al sito web sono state apportate modifiche che non sono tuttavia ancora visibili e la cache del browser e dell’applicazione è già stata svuotata. Anche determinati plug-in di Nginx per CMS come WordPress offrono la possibilità di eliminare la cache Nginx. Tali plug-in non sono tuttavia supportati da Hostpoint: all’occorrenza, quindi, la cache deve essere svuotata sempre tramite il Pannello di controllo Hostpoint.
Attivazione e configurazione
Nei paragrafi seguenti sono illustrati i passaggi necessari per attivare il caching per il sito web.
Impostazioni di base del sito web
Uno dei requisiti alla base del caching prevede che il sito web sia configurato con Nginx come server web primario. È possibile definire questa impostazione direttamente al momento della creazione di un nuovo sito web nel Pannello di controllo Hostpoint. Se si dispone già di un sito web, occorre modificarlo e fare clic su “Cambia impostazione di base” per attivare Nginx.
In entrambi i casi è necessario selezionare un caso d’uso (use case) che supporti il caching:
- Nginx (Proxy) con Apache/PHP
- Nginx con applicazione personale (disponibile a partire da Managed Flex Server M)
Il caso d’uso “Sito web statico con Nginx” utilizza Nginx, tuttavia, poiché supporta solo contenuti statici già coperti dalla rapida cache del file di sistema. Un ulteriore caching non porterebbe ad alcun vantaggio e non è per questo disponibile.
Attivazione e configurazione del caching
Non appena la configurazione di base del sito web è stata impostata in modo tale che Nginx venga utilizzato come server web primario e il caching possa così essere sostanzialmente supportato, è necessario attivare il caching esplicitamente anche nel Pannello di controllo Hostpoint nelle impostazioni del sito web. Le relative opzioni si trovano nell’area “Impostazioni proxy”.
Tenere presente che dopo aver attivato la cache le richieste verranno in essa salvate solo se l’applicazione (ad es. il CMS) autorizza questa operazione mediante intestazioni HTTP. Di default Nginx non salva alcuna richiesta sprovvista di tali intestazioni. È possibile modificare questo comportamento con l’impostazione “Comportamento di fallback”, stabilendo che debbano essere salvati nella cache anche contenuti sprovvisti di relativa intestazione. Si tratta tuttavia di un’operazione da effettuare solo in casi eccezionali. Di norma, il percorso mediante intestazioni HTTP è da preferire, poiché nelle applicazioni web consente di determinare con una maggiore precisione i contenuti e la relativa durata di permanenza nella cache. Questa impostazione non influisce in alcun modo sui contenuti con intestazione HTTP.
A partire da Managed Flex Server M si ha inoltre la possibilità di stabilire se salvare nella cache, oltre ai contenuti dinamici, anche contenuti statici. In genere suggeriamo di consentire il caching Nginx solo per i contenuti dinamici, poiché sono perlopiù solo questi ultimi a beneficiare del caching. I contenuti statici vengono già salvati nella cache con grande efficienza dal file system e riempirebbero la cache Nginx solo inutilmente.
Modifica dell’applicazione web
Per garantire il funzionamento del caching, l’applicazione deve impostare intestazioni HTTP che comunicano a Nginx se e quanto a lungo salvare nella cache il relativo contenuto. Se tali intestazioni non vengono attivate, Nginx di default non salverà nulla nella cache. Se necessario, è possibile modificare questo comportamento configurando il “Comportamento di fallback” della cache, ma di norma non è un’operazione consigliata. È necessario garantire che l’applicazione web imposti le corrispondenti intestazioni per i contenuti che possono essere salvati nella cache.
Per la maggior parte dei CMS più comuni esistono appositi plug-in in grado di svolgere per questo passaggio. Di seguito forniamo alcuni esempi:
WordPress:
Joomla!:
- Speed Cache (a pagamento)
- Server Cache
Per poter impostare correttamente le intestazioni, nelle applicazioni scritte in proprio è eventualmente necessario apportare modifiche al codice. In alcuni casi le intestazioni possono essere impostate anche tramite .htaccess.
Per richieste di supporto la preghiamo di usare invece questo modulo.