O Varnish Cache é um acelerador de aplicativos da web moderno, de alto desempenho, gratuito e de código aberto. É um proxy HTTP reverso rápido que armazena em cache o conteúdo para acelerar o desempenho do seu servidor web, armazenando o conteúdo da web na memória do servidor – em um cache. É configurado para ser executado na frente de um servidor de origem, como o Apache (HTTPD) webserver.
Quando um cliente solicita conteúdo, o Varnish aceita a solicitação HTTP, envia a solicitação para o servidor de origem, armazena em cache os objetos retornados e responde à solicitação do cliente. Na próxima vez que o cliente solicitar o mesmo conteúdo, o Varnish o servirá a partir do cache. Dessa forma, ele reduz o tempo de resposta e o consumo de largura de banda da rede em futuras solicitações equivalentes.
O Varnish também funciona como um roteador de solicitações HTTP, firewall de aplicativos da web, balanceador de carga e muito mais. Ele é configurado usando a flexível Linguagem de Configuração do Varnish (VCL), que é extensível usando Módulos do Varnish (também conhecidos como VMODs), suporta Inclusões do Lado do Edge (ESL), compressão e descompressão Gzip, e muito mais.
Neste artigo, você aprenderá como instalar o servidor web Apache HTTPD e o Varnish Cache 6 em um servidor CentOS/RHEL 8 novo, incluindo a configuração do Varnish para ser executado na frente do servidor HTTPD.
Pré-requisitos:
- A server with CentOS 8 Installation
- A server with RHEL 8 installation with enabled Red Hat subscription on your system.
Passo 1: Instalando o Servidor Web Apache no CentOS/RHEL 8
1. Comece atualizando todos os pacotes de software instalados no sistema da seguinte forma usando o comando DNF.
# dnf update
2. Em seguida, execute o seguinte comando para instalar o servidor web Apache HTTP a partir do repositório AppStream.
# dnf install httpd
3. Assim que a instalação estiver completa, inicie o serviço httpd, habilite-o para iniciar automaticamente durante o boot do sistema e verifique seu status para confirmar que está em execução, usando o comando systemctl.
# systemctl start httpd # systemctl enable httpd # systemctl status httpd

4. Por padrão, o CentOS/RHEL 8 inclui um firewall completamente bloqueado (execute firewall-cmd –state para confirmar). Você deve abrir acesso ao serviço HTTP no firewall para permitir que os usuários acessem sites ou aplicativos em execução sobre HTTP, e também recarregar as configurações do firewalld para aplicar as novas mudanças.
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --reload
Passo 2: Instalando o Cache Varnish 6.4 no CentOS/RHEL 8
5. Agora que o servidor web Apache está em execução, você pode prosseguir para instalar o Cache Varnish no sistema usando o seguinte comando.
# dnf module install varnish

6. Após uma instalação bem-sucedida, você pode verificar a versão do Varnish instalada no seu sistema.
# varnishd -V

7. Em seguida, o executável principal é instalado como /usr/sbin/varnishd. Além disso, os arquivos de configuração do Varnish são armazenados no diretório /etc/varnish, onde:
- /etc/varnish/default.vcl – é o arquivo de configuração principal do varnish escrito usando VCL.
- /etc/varnish/secret – é o arquivo secreto do varnish.
8. Agora inicie o serviço do varnish, por enquanto, habilite-o para iniciar automaticamente durante o boot do sistema em caso de reinicialização do servidor e verifique seu status para garantir que esteja em execução da seguinte maneira.
# systemctl start varnish # systemctl enable varnish # systemctl status varnish

Passo 3: Configurando o Apache para Funcionar com o Cache do Varnish
9. Agora é hora de configurar o Cache do Varnish para rodar na frente do serviço Apache. Por padrão, o servidor Apache está configurado para ouvir na porta 80, isso é definido no arquivo de configuração principal /etc/httpd/conf/httpd.conf.
Abra-o para edição usando seu editor de texto favorito.
# vi /etc/httpd/conf/httpd.conf
Procure pelo parâmetro Listen. Para executar o Varnish na frente do servidor Apache, você deve alterar a porta padrão 80 para 8080 (ou qualquer outra porta de sua escolha) como mostrado na seguinte captura de tela.
Esta porta será adicionada como a porta do servidor de backend no arquivo de configuração do Varnish mais tarde.

A configuração do host virtual para cada site/aplicação que será servido via Varnish deve ser configurada para ouvir a porta acima. Aqui está a configuração para o nosso site de teste (/etc/httpd/conf.d/tecmint.lan.conf).
<VirtualHost *:8080> DocumentRoot "/var/www/html/tecmint.lan/" ServerName www.tecmint.lan # Other directives here </VirtualHost>

Importante: Para evitar que a página de teste padrão do servidor HTTP Apache seja usada, comente todas as linhas no arquivo /etc/httpd/conf.d/welcome.conf ou simplesmente exclua o arquivo.
# rm /etc/httpd/conf.d/welcome.conf
10. Em seguida, teste a sintaxe de configuração do httpd para quaisquer erros. Se estiver OK, reinicie o serviço httpd para aplicar as novas alterações.
# httpd -t # systemctl restart httpd

Configurando o Varnish para o Systemd
11. Para implantar o Varnish na frente do HTTPD, você só precisa configurá-lo para ouvir as solicitações do cliente na porta HTTP padrão 80, conforme explicado abaixo.
Observe que no Varnish Cache 6.0 e superior, você precisa definir a porta que o servidor varnish escuta no arquivo de serviço Varnish para systemd. Primeiro, abra-o para edição.
# systemctl edit --full varnish
Procure pela linha ExecStart, então mude o valor do interruptor -a
(que especifica o varnish para ouvir o endereço e a porta) de :6081
para :80
, conforme indicado na captura de tela a seguir.
Importante, se você não especificar um endereço, varnishd irá escutar todas as interfaces IPv4 e IPv6 disponíveis ativas no servidor.
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Salve as alterações no arquivo e saia.
Configurando Servidores de Origem do Varnish usando VCL
12. Agora, você precisa configurar o servidor de origem, conhecido na terminologia do Varnish como um backend. É o servidor que entende HTTP, com o qual o Varnish conversa para buscar conteúdo – no caso, httpd. Ele é configurado no arquivo de configuração principal /etc/varnish/default.vcl.
# vi /etc/varnish/default.vcl
Existe uma seção de configuração padrão do backend chamada default. Você pode alterar “default” para server1 (ou qualquer nome de sua escolha para atender aos padrões do seu ambiente). Por padrão, o parâmetro host aponta para o localhost, assumindo que o servidor de backend está sendo executado no localhost.
Em seguida, defina a porta como 8080 (a porta que você definiu no arquivo de configuração do host virtual do Apache) como mostrado na captura de tela.
backend server1 { .host = "127.0.0.1"; .port = "8080"; }

Se o seu servidor de backend estiver sendo executado em um host diferente, por exemplo, outro servidor com o endereço 10.42.1.10, então o parâmetro host deve apontar para este endereço IP.
backend server1 { .host = "10.42.1.10"; .port = "8080"; }
Salve o arquivo e feche-o.
13. Após fazer todas as alterações necessárias relacionadas ao Varnish, recarregue a configuração do gerenciador do systemd para refletir as novas alterações no arquivo de serviço do Varnish e também reinicie o serviço do Varnish para aplicar as alterações gerais.
# systemctl daemon-reload # systemctl restart varnish
14. Neste ponto, o Varnish e o Apache devem estar agora ouvindo na porta 80 e 8080, respectivamente. Você pode confirmar isso usando o comando de estatísticas de socket.
# ss -tpln

Passo 4: Testando a Configuração do Cache do Varnish e do Apache
14. Para testar a configuração do Cache do Varnish-HTTPD, abra um navegador da web e navegue usando o IP do servidor ou o FQDN conforme mostrado na captura de tela a seguir.
http://10.42.0.144 OR http://www.tecmin.lan
Em seguida, verifique se as páginas da web estão sendo servidas via Cache do Varnish da seguinte forma. Verifique os cabeçalhos HTTP clicando com o botão direito na página da web exibida, selecione Inspecionar para abrir as ferramentas de desenvolvedor, em seguida, clique na guia Rede e recarregue a página. Em seguida, selecione uma solicitação para visualizar os cabeçalhos HTTP para confirmar isso conforme mostrado na captura de tela a seguir.

Alternativamente, você pode executar o seguinte comando curl para verificar.
# curl -I http:///10.42.0.144 OR #curl -I http:///www.tecmint.lan

Programas Utilitários Úteis do Cache do Varnish
15. Vamos encerrar este guia dando uma olhada em alguns dos programas úteis que a distribuição do Cache do Varnish inclui. Eles incluem utilitários para administração do cache do varnish, exibição de registros de log detalhados e visualização de estatísticas de desempenho do varnish, conforme descrito abaixo.
varnishadm
O primeiro é varnishadm que é usado para administrar uma instância em execução do Varnish. Ele estabelece uma conexão de interface de linha de comando com o varnishd. Pode afetar uma instância em execução do Varnish iniciando e parando o varnishd, alterando parâmetros de configuração, recarregando o VCL, listando backends e muito mais.
# varnishadm > backend.list

Para obter mais informações, leia man varnishadm.
varnishlog
O próximo programa é varnishlog que é usado para acessar dados específicos de requisição (ou seja, informações sobre clientes e requisições específicas). Ele fornece grandes quantidades de informações, sendo geralmente necessário filtrá-las.
# varnishlog

Para obter mais informações, leia o man varnishlog.
varnishstat
Temos também o varnishstat (estatísticas do Varnish) que é usado para acessar estatísticas gerais, como o número de requisições totais, número de objetos, e mais.
# varnishstat

Para obter mais informações, leia o man varnishstat.
varnishtop
Em seguida, temos o varnishtop que é um utilitário que lê o log do Varnish e apresenta uma lista continuamente atualizada das entradas de log mais comuns.
# varnishtop

Para obter mais informações, leia o man varnishtop.
varnishhist
Outra utilidade útil é o utilitário varnishhist (histórico do Varnish) que lê os registros do Varnish e apresenta um histograma continuamente atualizado mostrando a distribuição das últimas N solicitações pelo seu processamento.
# varnishhist

Para mais informações, leia o man varnishhist.
Aí está! Você implantou com sucesso o Varnish Cache para acelerar o conteúdo da sua aplicação web servida usando o Apache HTTP Server no CentOS/RHEL 8.
Se tiver alguma dúvida sobre este tema ou pensamentos para compartilhar, use o formulário de feedback abaixo. Consulte a documentação do Varnish Cache 6.0 para mais informações.
Se quiser habilitar o HTTPS no seu site, confira nosso próximo artigo, que mostrará como habilitar SSL/TLS para o Varnish Cache usando o Hitch no CentOS/RHEL 8.
Source:
https://www.tecmint.com/install-varnish-cache-for-apache-on-centos-rhel-8/