Cache Dinamica di SiteGround - Configurazione, headers e pulizia
Questo tutorial riguarda i seguenti argomenti:
La nostra Cache Dinamica è un sistema di caching full-page basato da NGINX e installato su tutti i server SiteGround. Le applicazioni che inviano gli header appropriati per consentire la memorizzazione nella cache, raggiungeranno una velocità di caricamento del sito imbattibile. WordPress normalmente funziona da subito con la nostra Cache Dinamica, ma altre applicazioni potrebbero richiedere una configurazione aggiuntiva.
Operazioni basiche della Cache Dinamica di SiteGround
Senza la cache dinamica, la richiesta di ogni utente viene gestita in questo modo:
Dopo questa richiesta iniziale, la Cache Dinamica di SiteGround archivierà il contenuto della tua pagina nella memoria del server e le successive richieste alle stesse pagine verranno gestite come mostrato:
Tempi di scadenza predefiniti
Teniamo una pagina standard di un sito per 12 ore nella cache. Questa può essere sovrascritta dall’intestazione Cache-Control:max-age inviata dall’applicazione, così anche i clienti possono gestire il tempo della cache da parte loro.
Protezione dati
Potresti essere legalmente obbligato, ai sensi della legislazione sulla privacy o sulla protezione dei dati, a proteggere i dati personali degli utenti del sito web. Quindi, sebbene la memorizzazione dei dati delle pagine nella cache sia ottimo e incredibilmente veloce, ci sono alcuni casi in cui non dovrebbe essere usato. Per esempio, non si può salvare nella cache la pagina del carrello o quella di checkout. Questo sarebbe solo un esempio ma ci sono molti casi simili. Di solito, quando un utente effettua il login nel tuo sito, le informazioni che ha bisogno di vedere sono personalizzate e non dovrebbero essere incluse nella cache. Ecco perché ci sono delle esclusioni predefinite dalla nostra Cache Dinamica che abbiamo deciso di impostare.
Cookies:
Controlliamo se il tuo browser ha questi cookies ed evitiamo la cache se sono presenti. Per alcuni controlliamo il valore del cookie mentre per altri il cookie stesso:
wordpress_logged_in_, yith_wcwl_products, wp-postpass_, edd_items_in_cart=1, it_exchange_session_, wp_woocommerce_session, woocommerce_cart_hash, woocommerce_items_in_cart=1, Drupal.visitor.name, drupalSGCacheBypass=1, jSGCacheBypass=1, wpSGCacheBypass=1
URL esclusi
Ricerchiamo questi URL e li mettiamo a disposizione dinamicamente tutto il tempo basandoci su una corrispondenza parziale o totale:
wp-login, preview=true, cart, my-account, checkout, addons, add-to-cart, wp-cron.php, xmlrpc.php, contact, task=registration, register, view=registration|administrator|remind|login, admin/content/backup_migrate/export, status.php, update.php, install.php, user, info, flag, ajax, aha
Ti consigliamo di verificare che le pagine contenenti dati personali vengano escluse come impostazione predefinita, facendo riferimento alle corrispondenze URL di cui sopra. Se desideri escludere altri URL, fai riferimento a queste istruzioni.
Headers di cache supportati
La Cache Dinamica di SiteGround funziona basandosi sugli headers. Abbiamo degli headers personalizzati ma supportiamo tutti i contro header di cache standard che sono supportati da tutte le applicazioni CMS:
- cache-control: no-cache – passando da questo header viene detto al nostro sistema di non mettere in cache questa richiesta
- cache-contro: max-age – questo header dice al nostro sistema di mettere in cache questa richiesta per un determinato numero di secondi
Dal momento che rispettiamo gli header standard di cache, la tua applicazione dovrebbe funzionare senza problemi con le preconfigurazioni anche senza un’estensione specializzata.
Se stai sviluppando il tuo script personalizzato, puoi escludere l’URL semplicemente usando l’header appropriato:
<php header("Cache-Control: no-cache"); ?>
Oppure, impostare per quanto tempo le tue pagine dovrebbero essere messe in cache:
<php header("Cache-Control: max-age=6000"); ?>
Pulizia della Cache Dinamica
Se utilizzi WordPress, il modo migliore per pulire la cache sarebbe avere il plugin Speed Optimizer installato ed attivo. Tra le opzioni di cache del plugin vedrai un pulsante per svuotare la cache manualmente. Nella maggior parte dei casi, lasciare l’opzione di svuotamento automatico attiva dovrebbe essere abbastanza. Oltre a questo, puoi usare il nostro comando WP-CLI (incluso nel plugin) per svuotare la Cache Dinamica:
wp sg purge
Oltre al nostro plugin, potrai svuotare la cache manualmente da Site Tools – > Velocità – > Caching.
Test della Cache Dinamica
Dato che la Cache Dinamica di SiteGround funziona basata sugli headers, la maniera più sicura di testarla è fare una richiesta al sito e controllare gli headers di ritorno. Puoi utilizzare la funzione Network dello strumento di ispezione del tuo browser, curl o un semplice strumento online come ad esempio Online Curl (https://reqbin.com/curl) con l’opzione di ottenere gli headers del sito. Poi, controlla il valore dei nostri header di cache:
- x-proxy-cache: HIT – richiesta gestita dalla cache. Questo risultato vuol dire che la pagina è correttamente salvata in cache.
- x-proxy-cache: MISS – richiesta gestita dinamicamente. Ricarica la pagina e controllala nuovamente. O la cache non è attiva o è la prima volta che questa pagina viene visitata in 12 ore. Nota che potrebbe variare: User-Agent (o l’opzione per la cache specifica di browser in Speed Optimizer) dividerà la cache a seconda del browser quindi potresti aver bisogno di ricaricare la pagina anche se hai effettuato l’accesso in precedenza da un altro browser.
- x-proxy-cache: BYPASS – richiesta gestita dinamicamente in quanto la cache è impostata per escluderla. Questo risultato indica che o hai effettuato il login nel tuo sito o stai testando una pagina presente nella nostra lista di URL esclusi o ci sono dei cookies nel browser che innescano la richiesta di gestione dinamica.