Configurazione Varnish HTTP cache

Introduzione

Varnish e' un reverse proxy specializzato in caching HTTP, capace di servire pagine intere in pochi millisecondi senza coinvolgere PHP. Magento 2 e' progettato per integrarsi nativamente con Varnish, e il suo uso e' fortemente consigliato in produzione.

Architettura

In una configurazione tipica: client → Nginx (porta 80/443, SSL termination) → Varnish (porta 6081 o 8080) → Nginx/Apache (porta 8443 backend) → PHP-FPM. Varnish memorizza in RAM le pagine non personalizzate (categorie, prodotti, CMS).

Installazione

Su Ubuntu/Debian: apt install varnish. Versione consigliata: Varnish 7.x. Memoria: dimensionare il storage size in base al catalogo, tipicamente 1-4 GB per uno store di medie dimensioni.

Generare il VCL da Magento

Magento 2 fornisce un file VCL pronto. Da admin: System → Configuration → System → Full Page Cache, scegliere Caching Application = Varnish Cache, impostare TTL, Backend Host (es. 127.0.0.1) e Backend Port (es. 8080). Salvare e cliccare "Export VCL for Varnish 6" o 7 a seconda della versione.

Posizionamento del VCL

Il file scaricato va copiato in /etc/varnish/default.vcl. Riavviare Varnish: systemctl restart varnish. Verificare con varnishlog che le richieste passino e con varnishstat le hit rate.

ESI per blocchi dinamici

Mini-cart, customer info e cross-sell sono blocchi personalizzati: Magento li serve tramite ESI (Edge Side Includes), risolti da Varnish lato server senza invalidare la pagina principale.

PURGE e ban

Varnish viene istruito dal Magento backend a invalidare URL specifici tramite richieste PURGE. La sezione access_list nel VCL deve includere l'IP del server Magento.

SSL e Varnish

Varnish non gestisce SSL: e' necessario un reverse proxy SSL davanti (Nginx, Hitch). In genere Nginx termina SSL, passa a Varnish e Varnish al backend HTTP interno.

Diagnostica

Controllare l'header Y-Magento-Cache-Debug: HIT/MISS indica se la cache funziona. Su prima visita ci si aspetta MISS, dalla seconda HIT.

Hai bisogno di aiuto?

Se vuoi un Magento ottimizzato dal team di G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?