Configurar verniz
O Cache de Verniz é um acelerador de aplicativo Web de código aberto (também conhecido como acelerador HTTP ou proxy reverso HTTP de cache). O Varnish armazena (ou armazena em cache) arquivos ou fragmentos de arquivos na memória, o que permite que o Varnish reduza o tempo de resposta e o consumo de largura de banda da rede em solicitações futuras e equivalentes. Diferentemente de servidores Web como Apache e nginx, o Varnish foi projetado para uso exclusivo com o protocolo HTTP.
Requisitos do sistema lista as versões do verniz com suporte.
Para obter mais informações sobre verniz, consulte:
- [Panorama do Verniz Grande]
- Opções de inicialização de verniz
- Desempenho de Verniz e Site
Diagrama de topologia de verniz
A figura a seguir mostra uma exibição básica de Verniz na topologia do Commerce.
Na figura anterior, as solicitações HTTP dos usuários pela Internet resultam em várias solicitações para CSS, HTML, JavaScript e imagens (chamadas coletivamente de ativos). O verniz fica na frente do servidor Web e faz o proxy dessas solicitações para o servidor Web.
Como o servidor Web retorna ativos, os ativos que podem ser armazenados em cache são armazenados em verniz. Quaisquer solicitações subsequentes para esses ativos são atendidas pela Verniz (ou seja, as solicitações não chegam ao servidor Web). O verniz retorna conteúdo em cache com extrema rapidez. Os resultados são tempos de resposta mais rápidos para retornar o conteúdo aos usuários e um número reduzido de solicitações que devem ser atendidas pelo Commerce.
O Assets armazenado em cache pelo Varnish expira em um intervalo configurável ou é substituído por versões mais recentes dos mesmos ativos. Você também pode limpar o cache manualmente usando o comando Admin ou magento cache:clean
.
Visão geral do processo
Este tópico discute como instalar inicialmente o Verniz com um conjunto mínimo de parâmetros e testar se ele funciona. Em seguida, exporte uma configuração de Verniz do Administrador do Commerce e teste-a novamente.
O processo pode ser resumido da seguinte forma:
-
Instale o Varnish e teste-o acessando qualquer página do Commerce para ver se você está recebendo cabeçalhos de resposta HTTP que indicam que o Varnish está funcionando.
-
Instale o software Commerce e use o Admin para criar um arquivo de configuração do Vernish.
-
Substitua seu arquivo de configuração de verniz existente pelo arquivo gerado pelo administrador.
-
Teste tudo novamente.
Se não houver nada no diretório
<magento_root>/var/page_cache
, você configurou com êxito o Varnish com Commerce!
-
Exceto quando observado, você deve inserir todos os comandos discutidos neste tópico como um usuário com privilégios
root
. -
Este tópico foi escrito para Verniz no CentOS e Apache 2.4. Se você estiver configurando o Verniz em um ambiente diferente, alguns comandos poderão ser diferentes. Consulte a documentação do Verniz para obter mais informações.
Problemas conhecidos
Sabemos dos seguintes problemas com o verniz:
-
[O verniz não oferece suporte a SSL]
Como alternativa, use a terminação SSL ou um proxy de terminação SSL.
-
Se você excluir manualmente o conteúdo do diretório
<magento_root>/var/cache
, será necessário reiniciar o Verniz. -
Possível erro ao instalar o Commerce:
code language-none Error 503 Service Unavailable Service Unavailable XID: 303394517 Varnish cache server
Se você receber esse erro, edite
default.vcl
e adicione um tempo limite à estrofebackend
da seguinte maneira:code language-conf backend default { .host = "127.0.0.1"; .port = "8080"; .first_byte_timeout = 600s; }
Visão geral do armazenamento em cache do Vernish
O armazenamento em cache de verniz funciona com o Commerce usando:
nginx.conf.sample
do repositório GitHub Magento 2.htaccess
arquivo de configuração distribuído para o Apache fornecido com o Commerce- Configuração
default.vcl
para Verniz gerada com o Administrador
Na primeira solicitação do navegador, os ativos armazenáveis em cache são entregues ao navegador do cliente do Vernish e armazenados em cache no navegador.
Além disso, o verniz usa uma tag de entidade (ETag) para ativos estáticos. O ETag fornece uma maneira de determinar quando os arquivos estáticos são alterados no servidor. Como resultado, os ativos estáticos são enviados ao cliente quando são alterados no servidor, seja em uma nova solicitação de um navegador ou quando o cliente atualiza o cache do navegador, normalmente pressionando F5 ou Control+F5.
Mais detalhes são fornecidos nas seções a seguir.
Armazenamento em cache por solicitação do navegador
Esta seção usa um inspetor de navegador para mostrar como os ativos são entregues ao navegador na primeira solicitação e depois carregados do cache do navegador local.
Primeira solicitação do navegador
nginx.conf.sample
e .htaccess
fornecem opções para armazenamento em cache do cliente. Quando a primeira solicitação é feita de um navegador para um objeto que pode ser armazenado em cache, o Varnish o entrega ao cliente.
A figura a seguir mostra um exemplo de uso de um inspetor de navegador:
O exemplo anterior mostra uma solicitação para a página principal da loja (m2_ce_my
). Os ativos CSS e JavaScript são armazenados em cache no navegador do cliente.
Segunda solicitação do navegador
Se o mesmo navegador solicitar a mesma página novamente, esses ativos serão entregues pelo cache do navegador local, como mostra a figura a seguir.
Observe a diferença no tempo de resposta entre a primeira e a segunda solicitação. Novamente, os ativos estáticos têm um código de resposta 200 (OK) porque são entregues do cache local pela primeira vez.
Como o Commerce usa a Etag
O exemplo a seguir mostra cabeçalhos de resposta para um ativo estático específico.
calendar.css
tem um cabeçalho de resposta ETag, o que significa que o arquivo CSS no navegador cliente pode ser comparado ao do servidor.
Além disso, os ativos estáticos são retornados com um código de status HTTP 304 (Não modificado), como mostra a figura a seguir.
O código de status 304 ocorre porque o usuário invalidou o cache local e o conteúdo no servidor não foi alterado. Devido ao código de status 304, o conteúdo do ativo estático não é transferido; somente os cabeçalhos HTTP são baixados para o navegador.
Se o conteúdo for alterado no servidor, o cliente baixará o ativo estático com um código de status HTTP 200 (OK) e um novo ETag.