Guida

Configura Varnish per Magento 2, passo dopo passo.

Full-page cache in Varnish: passa Magento a Varnish, genera la VCL, metti Varnish tra nginx e il negozio e verifica che le pagine arrivino dalla cache. Checked on 5 nov 2026.

Step 1Magento

Passa la full-page cache a Varnish

Nell'admin si trova in Stores, Configuration, Advanced, System, Full Page Cache, Caching Application. Da riga di comando è una sola impostazione:

On your server

bin/magento config:set system/full_page_cache/caching_application 2

1 è la cache integrata, 2 è Varnish.

Step 2Magento

Genera la VCL da Magento

Magento scrive una configurazione di Varnish che conosce i suoi cache tag e le richieste di purge. Punta il backend sulla porta dove nginx serve il negozio e consenti i purge solo dal server stesso.

On your server

bin/magento varnish:vcl:generate --export-version=7 \
  --backend-host=127.0.0.1 --backend-port=8080 \
  --access-list=127.0.0.1 --output-file=/etc/varnish/default.vcl

bin/magento varnish:vcl:generate --help elenca le versioni di export offerte dalla tua release di Magento.

Step 3Magento

Indica a Magento dove ascolta Varnish

Quando un prodotto o una pagina cambia, Magento invia una richiesta di purge a Varnish. Gli servono l'indirizzo e la porta su cui ascolta Varnish.

On your server

bin/magento setup:config:set --http-cache-hosts=127.0.0.1:6081

Step 4Server

Metti Varnish tra nginx e il negozio

Varnish non parla HTTPS. La catena abituale è: nginx sulla 443 termina il TLS e passa la richiesta a Varnish sulla 6081, e Varnish chiede la pagina a un secondo server block di nginx sulla 8080 che esegue PHP. Riavvia Varnish dopo aver modificato la VCL.

nginx e Varnish

# nginx, the public server block (443)
location / {
    proxy_pass http://127.0.0.1:6081;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

# then
systemctl restart varnish

Step 5Verifica

Verifica che le pagine arrivino dalla cache

Apri due volte una pagina di categoria e guarda crescere il contatore degli hit, oppure segui una richiesta attraverso Varnish. Poi svuota solo la cache delle pagine quando serve.

On your server

varnishstat -1 | grep -E 'cache_hit |cache_miss '
varnishlog -g request -q 'ReqURL eq "/"'
bin/magento cache:flush full_page

Un contatore cache_hit che continua a crescere con le visite ripetute significa che Varnish sta servendo le pagine.

Domande, e risposte.

Supporto ShopWhizzy Magento dal 2008

Parla con noi
Qualsiasi porta libera; di solito la 6081. nginx le invia le richieste, e Magento invia le sue richieste di purge allo stesso indirizzo.
Fanno lavori diversi. Varnish serve pagine intere dalla memoria prima che parta PHP; Redis o Valkey contengono la cache e le sessioni di Magento. La maggior parte dei negozi veloci li usa entrambi.
Le pagine di carrello, checkout e account sono private, quindi Magento le segna come non memorizzabili in cache. I blocchi segnati con cacheable="false" in un layout rendono non memorizzabile l'intera pagina, una causa comune di negozi lenti.
Sì. Ogni piano Magento esegue Varnish dal primo minuto, con la VCL generata per il tuo negozio.

Porta qui il tuo negozio. Lo trasferiamo gratis.

Scegli un piano, scegli una piattaforma e il tuo negozio è online prima che il caffè si raffreddi.

I prezzi includono l'IVA. Supporto server in ogni piano.