Pense por um momento sobre o que aconteceu quando você acessou a página atual. Você clicou em um link que recebeu por meio de um boletim informativo, ou no link na página inicial do Tecmint.com e depois foi levado a este artigo.
Em poucas palavras, você (ou na verdade seu navegador) enviou uma solicitação HTTP para o servidor web que hospeda este site, e o servidor enviou de volta uma resposta HTTP.
Por mais simples que isso pareça, esse processo envolve muito mais do que isso. Muito processamento teve que ser feito do lado do servidor para apresentar a página bem formatada que você pode ver com todos os recursos nela – estáticos e dinâmicos.
Sem aprofundar muito, você pode imaginar que se o servidor web tiver que responder a muitas solicitações como esta simultaneamente (comece com apenas algumas centenas), ele pode acabar sobrecarregando a si mesmo ou ao sistema inteiro antes do previsto.
E é aí que o Varnish, um acelerador HTTP de alto desempenho e um proxy reverso, pode salvar o dia. Neste artigo, vou explicar como instalar e usar o Varnish como um front-end para o Apache ou Nginx para armazenar em cache respostas HTTP mais rapidamente e sem colocar uma carga adicional no servidor web.
No entanto, como o Varnish normalmente armazena seu cache na memória em vez de no disco, precisaremos ter cuidado e limitar o espaço de RAM alocado para o cache. Vamos discutir como fazer isso em um minuto.
Tabela de Conteúdos
Como o Varnish Funciona

Instalando o Cache do Varnish no Servidor Linux
Este post pressupõe que você tenha instalado um servidor LAMP ou LEMP. Se não, por favor, instale um desses conjuntos antes de prosseguir.
- Como Instalar o Servidor LAMP em Distribuições Baseadas em RHEL
- Como Instalar o Servidor LAMP no Ubuntu
- Como Instalar o Servidor LAMP no Debian
- Como Instalar o Servidor LEMP em Distribuições Baseadas em RHEL
- Como Instalar o Servidor LEMP no Ubuntu
- Como Instalar o Servidor LEMP no Debian
A documentação oficial recomenda instalar o Varnish a partir do repositório do próprio desenvolvedor, pois eles sempre fornecem a versão mais recente. Você também pode optar por instalar o pacote a partir dos repositórios oficiais da sua distribuição, embora possa estar um pouco desatualizado.
Além disso, observe que os repositórios do projeto oferecem suporte apenas para sistemas de 64 bits, enquanto para máquinas de 32 bits, você terá que recorrer aos repositórios mantidos oficialmente pela sua distribuição.
Neste artigo, instalaremos o Varnish a partir dos repositórios oficialmente suportados por cada distribuição. A principal razão por trás desta decisão é fornecer uniformidade no método de instalação e garantir a resolução automática de dependências para todas as arquiteturas.
Instalar Varnish no Linux baseado em Debian
Nas distribuições baseadas em Debian, você pode instalar o Varnish usando o comando apt como mostrado.
# apt update # apt install varnish

Instalar Varnish no Linux baseado em RHEL
Em distribuições baseadas em RHEL, como CentOS, Rocky e AlmaLinux, você precisará habilitar o repositório EPEL antes de instalar o Varnish usando o comando yum, como mostrado.
# yum install epel-release # yum update # yum install varnish

Se a instalação for concluída com sucesso, você terá uma das seguintes versões de varnish, dependendo de sua distribuição:
# varnishd -V varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Finalmente, você precisa iniciar o Varnish manualmente se o processo de instalação não o fez e habilitá-lo para iniciar na inicialização.
# systemctl start varnish # systemctl enable varnish # systemctl status varnish

Por padrão, a porta 6081 é usada pelo serviço varnish e você pode confirmar isso executando o seguinte comando netstat.
# netstat -tunlp | grep 6081

Configurando o Varnish Cache no Linux
Como mencionamos anteriormente, o Varnish fica no meio dos clientes externos e do servidor web. Por essa razão, e para que o cache se torne transparente aos usuários finais, precisaremos:
- Mude a porta padrão 6081 na qual Varnish escuta para 80.
- Mude a porta padrão na qual o servidor Web escuta para 8080 em vez da padrão 80.
- Redirecione o tráfego de entrada de Varnish para o servidor web. Felizmente, o Varnish faz isso automaticamente depois que completamos os passos 1) e 2).
Mude a Porta do Varnish
O processo varnishd é controlado por systemd e possui seu arquivo de unidade em /usr/lib/systemd/system/varnish.service, que contém a configuração de runtime padrão do Varnish.
Aqui, precisamos mudar a porta padrão do varnish de 6081 para a porta 80 e o tamanho do cache para 1GB como mostrado ao executar o seguinte comando, que abrirá o arquivo de unidade no editor como mostrado.
Nota: Você pode alterar a quantidade de memória de acordo com os recursos de hardware ou, alternativamente, optar por salvar arquivos em cache no disco.
$ sudo systemctl edit --full varnish OR # systemctl edit --full varnish

Após fazer alterações no arquivo /etc/systemd/system/varnish.service, você precisa recarregar o daemon Systemd executando o seguinte comando:
# systemctl daemon-reload
Mude a Porta do Apache ou Nginx
Depois de alterar a porta do Varnish, agora você precisa alterar a porta do seu servidor web Apache ou Nginx do padrão 80 para a porta de rede mais comum, ou seja, 8080.
---------- On Debian-based Systems ---------- # nano /etc/apache2/ports.conf [On Apache] # /etc/nginx/sites-enabled/default [On Nginx] ---------- On RHEL-based Systems ---------- # vi /etc/httpd/conf/httpd.conf [On Apache] # vi /etc/nginx/nginx.conf [On Nginx]

Depois de fazer as alterações, não se esqueça de reiniciar o Varnish e o servidor web.
# systemctl restart varnish ---------- On Debian-based Systems ---------- # systemctl restart apache2 # systemctl restart nginx ---------- On RHEL-based Systems ---------- # systemctl restart httpd # systemctl restart nginx
Testando o Cache do Varnish no Linux
O primeiro teste consiste em fazer uma solicitação HTTP via o comando curl e verificar se é tratada pelo Varnish:
# curl -I http://localhost

O Varnish também inclui duas ferramentas convenientes também:
- Visualize os logs do Varnish em tempo real, intuitivamente chamado de varnishlog.
- Exiba as estatísticas do cache do Varnish, chamado de varnishstat.
Como segundo teste, no seguinte roteiro, exibiremos os logs e as estatísticas em um servidor CentOS (dev1, metade superior da tela) e em um servidor Debian (dev2, metade inferior da tela) à medida que solicitações HTTP são enviadas e respostas recebidas.
Teste de Desempenho do Servidor Web Benchmark
Nosso terceiro e último teste consistirá em realizar o benchmark tanto do servidor web quanto do Varnish com a ferramenta de benchmark ab e comparando os tempos de resposta e a carga de CPU em cada caso.
Neste exemplo específico, usaremos o servidor CentOS, mas você pode usar qualquer distribuição e obter resultados semelhantes. Observe o load average no topo e a linha Requests per second no resultado do ab.
Com o ab, enviaremos 50 (-c 50) solicitações concorrentes ao mesmo tempo e repetiremos o teste 1000000 vezes (indicado por -n 1000000). O Varnish retornará um número maior de solicitações por segundo e um load average muito menor.
Importante: Lembre-se de que o Varnish está escutando na porta 80 (a porta HTTP padrão), enquanto o Apache está escutando na porta 8080. Você também pode anotar a quantidade de tempo necessária para concluir cada teste.
# ab -c 50 -n 100000 http://localhost/index.html
Conclusão
Neste artigo, discutimos como configurar um cache Varnish na frente de um servidor web, Apache ou Nginx. Observe que não aprofundamos no arquivo de configuração default.vcl, que nos permite personalizar a política de cache ainda mais.
Agora você pode consultar a documentação oficial para obter mais exemplos de configuração ou deixar um comentário usando o formulário abaixo.
Source:
https://www.tecmint.com/install-varnish-cache-server/