Guia

Configure o Varnish para Magento 2, passo a passo.

Cache de página completa no Varnish: mude o Magento para ele, gere a VCL, coloque o Varnish entre o nginx e a loja e confirme que as páginas vêm da cache. Checked on 5 de nov. de 2026.

Step 1Magento

Mude a cache de página completa para o Varnish

No admin, isto está em Stores, Configuration, Advanced, System, Full Page Cache, Caching Application. Na linha de comandos é uma única definição:

On your server

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

1 é a cache incorporada, 2 é o Varnish.

Step 2Magento

Gere a VCL a partir do Magento

O Magento escreve uma configuração do Varnish que conhece as suas cache tags e os pedidos de purge. Aponte o backend para a porta onde o nginx serve a loja e permita purges apenas a partir do próprio servidor.

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 mostra as versões de exportação que a sua versão do Magento oferece.

Step 3Magento

Indique ao Magento onde o Varnish está à escuta

Quando um produto ou página muda, o Magento envia um pedido de purge ao Varnish. Precisa do endereço e da porta onde o Varnish está à escuta.

On your server

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

Step 4Servidor

Coloque o Varnish entre o nginx e a loja

O Varnish não fala HTTPS. A cadeia habitual é: o nginx na 443 termina o TLS e passa o pedido ao Varnish na 6081, e o Varnish pede a um segundo server block do nginx na 8080 que corre o PHP. Reinicie o Varnish depois de alterar a 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 5Verificar

Confirme que as páginas vêm da cache

Abra uma página de categoria duas vezes e veja o contador de hits subir, ou siga um pedido através do Varnish. Depois limpe apenas a cache de página quando precisar.

On your server

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

Um contador cache_hit que continua a subir em visitas repetidas significa que o Varnish está a servir as páginas.

Perguntas, respondidas.

Suporte ShopWhizzy Magento desde 2008

Fale connosco
Qualquer porta livre; a 6081 é a habitual. O nginx envia-lhe os pedidos, e o Magento envia os pedidos de purge para o mesmo endereço.
Fazem trabalhos diferentes. O Varnish serve páginas inteiras a partir da memória antes de o PHP arrancar; o Redis ou o Valkey guardam a cache e as sessões do Magento. A maioria das lojas rápidas usa os dois.
As páginas do carrinho, do checkout e da conta são privadas, por isso o Magento marca-as como não cacheáveis. Blocos marcados com cacheable="false" num layout tornam toda a página não cacheável, o que é uma causa comum de lojas lentas.
Sim. Todos os planos Magento correm o Varnish desde o primeiro minuto, com a VCL gerada para a sua loja.

Traga a sua loja. Mudamo-la de graça.

Escolha um plano, escolha uma plataforma, e a sua loja fica online antes de o café arrefecer.

Os preços incluem IVA. Suporte ao servidor em todos os planos.