Pesquisa de site

Como instalar o Varnish Cache 6 para Nginx no CentOS/RHEL 8


Varnish Cache (comumente chamado de Varnish) é um acelerador HTTP de proxy reverso de código aberto, poderoso e rápido, com arquitetura moderna e flexível. linguagem de configuração. Ser um proxy reverso significa simplesmente que é um software que você pode implantar na frente do seu servidor web (que é o servidor de origem ou back-end), como o Nginx, para receber solicitações HTTP dos clientes e encaminhá-las para o servidor de origem para processamento. E entrega a resposta do servidor de origem aos clientes.

O Varnish atua como intermediário entre o Nginx e os clientes, mas com alguns benefícios de desempenho. Seu principal objetivo é acelerar o carregamento de seus aplicativos, funcionando como um mecanismo de cache. Ele recebe solicitações de clientes e as encaminha ao backend uma vez para armazenar em cache o conteúdo solicitado (armazenar arquivos e fragmentos de arquivos na memória). Então, todas as solicitações futuras de conteúdo exatamente semelhante serão atendidas a partir do cache.

Isso faz com que seus aplicativos da web carreguem mais rápido e melhore indiretamente o desempenho geral do seu servidor da web porque o Varnish servirá o conteúdo da memória em vez do Nginx processar os arquivos do disco de armazenamento.

Além do cache, o Varnish também possui vários outros casos de uso, incluindo um roteador de solicitação HTTP e balanceador de carga, firewall de aplicativo da web e muito mais.

O varnish é configurado usando a Varnish Configuration Language (VCL) integrada altamente extensível que permite escrever políticas sobre como as solicitações recebidas devem ser manipulado. Você pode usá-lo para criar soluções, regras e módulos personalizados.

Neste artigo, seguiremos as etapas para instalar o servidor web Nginx e o Varnish Cache 6 em um novo CentOS 8 ou Servidor RHEL 8. Os usuários do RHEL 8 devem certificar-se de ativar a assinatura redhat.

Para configurar uma pilha LEMP completa em vez de instalar apenas o servidor web Nginx, verifique os guias a seguir.

  1. Como instalar o servidor LEMP no CentOS 8
  2. Como instalar o servidor LEMP no RHEL 8

Etapa 1: Instale o servidor Web Nginx no CentOS/RHEL 8

1. O CentOS/RHEL 8 vem com a versão mais recente do software de servidor web Nginx, portanto, iremos instalá-lo a partir do repositório padrão usando o seguindo comandos dnf.

dnf update
dnf install nginx

2. Uma vez instalado o Nginx, você precisa iniciar, ativar e verificar o status usando os seguintes comandos systemctl.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Se você estiver um pouco curioso, também pode verificar o soquete Nginx TCP, que roda na porta 80 por padrão, usando o seguinte comando ss.

ss -tpln

4. Se você estiver executando o firewall no sistema, certifique-se de atualizar as regras do firewall para permitir solicitações a um servidor web.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

Etapa 2: Instalando o Varnish Cache 6 no CentOS/RHEL 8

5. O CentOS/RHEL 8 fornece um módulo Varnish Cache DNF por padrão que contém a versão 6.0 LTS (Suporte de longo prazo).

Para instalar o módulo, execute o seguinte comando.

dnf module install varnish

6. Assim que a instalação do módulo for concluída, você poderá confirmar a versão do Varnish instalada em seu sistema.

varnishd -V

7. Depois de instalar o Varnish Cache, o comando executável principal instalado em /usr/sbin/varnishd e os arquivos de configuração do verniz estão localizados em /etc/varnish/.

O arquivo /etc/varnish/default.vcl é o principal arquivo de configuração do verniz escrito usando VCL e /etc/varnish/secret é o arquivo de verniz arquivo secreto.

8. Em seguida, inicie o serviço Varnish, habilite-o para inicialização automática durante a inicialização do sistema e confirme se ele está instalado e funcionando.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Etapa 3: configurando o Nginx para funcionar com o Varnish Cache

9. Nesta seção, mostraremos como configurar o Varnish Cache para ser executado na frente do Nginx. Por padrão, o Nginx escuta na porta 80, normalmente cada bloco de servidor (ou host virtual) é configurado para escutar nesta porta.

Por exemplo, dê uma olhada no bloco de servidor nginx padrão configurado no arquivo de configuração principal (/etc/nginx/nginx.conf).

vi /etc/nginx/nginx.conf

Procure a seção de bloco do servidor conforme mostrado na imagem a seguir.

10. Para executar o Varnish na frente do Nginx, você deve alterar a porta padrão do Nginx de 80 para 8080 (ou qualquer outra porta de sua preferência).

Isso deve ser feito em todos os futuros arquivos de configuração de bloco de servidor (geralmente criados em /etc/nginx/conf.d/) para sites ou aplicações web que você deseja servir via Varnish >.

Por exemplo, o bloco de servidor para nosso site de teste tecmint.lan é /etc/nginx/conf.d/tecmint.lan.conf e tem a seguinte configuração.

server {
        listen       8080;
        server_name  www.tecmint.lan;
        root         /var/www/html/tecmint.lan/;
        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
}

Importante: Lembre-se de desabilitar o bloco de servidor padrão comentando sua seção de configuração no arquivo /etc/nginx/nginx.conf conforme mostrado na captura de tela a seguir. Isso permite que você comece a executar outros sites/aplicativos em seu servidor, caso contrário, o Nginx sempre direcionará as solicitações para o bloco de servidor padrão.

11. Assim que a configuração for concluída, verifique se há erros no arquivo de configuração e reinicie o serviço Nginx para aplicar as alterações recentes.

nginx -t
systemctl restart nginx

12. Em seguida, para receber solicitações HTTP de clientes, precisamos configurar o Varnish para rodar na porta 80. Ao contrário das versões anteriores do Varnish Cache, onde esta alteração foi feita no arquivo de ambiente Varnish (que agora está obsoleto), na versão 6.0 e superior .

Precisamos fazer a alteração necessária no arquivo de serviço do Varnish. Execute o seguinte comando para abrir o arquivo de serviço apropriado para edição.

systemctl edit --full  varnish

Encontre a linha a seguir e altere o valor da opção -a, que especifica o endereço de escuta e a porta. Defina a porta como 80 conforme mostrado na imagem a seguir.

Observe que se você não especificar um endereço, o varnishd escutará todas as interfaces IPv4 e IPv6 disponíveis e 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.

13. Em seguida, você precisa definir o servidor back-end que o Varnish visitará para buscar conteúdo. Isso é feito no arquivo de configuração principal do Varnish.

vi /etc/varnish/default.vcl 

Procure a seção de configuração de back-end padrão e altere a string “default ” para server1 (ou qualquer nome de sua escolha para representar seu servidor de origem). Em seguida, defina a porta como 8080 (ou a porta de escuta Nginx que você definiu em seu bloco de servidor).

backend server1 {
    .host = "127.0.0.1";
    .port = "8080";
}

Para este guia, estamos executando Varnish e Nginx no mesmo servidor. Se o seu servidor web Nginx estiver sendo executado em um host diferente. Por exemplo, outro servidor com endereço 10.42.0.247, defina o parâmetro .host conforme mostrado.

backend server1 {
    .host = "10.42.0.247";
    .port = "8080";
}

Salve o arquivo e feche-o.

14. Em seguida, você precisa recarregar a configuração do gerenciador systemd devido às alterações recentes no arquivo do serviço Varnish e, em seguida, reiniciar o serviço Varnish para aplicar as alterações da seguinte forma.

systemctl daemon-reload
systemctl restart varnish

15. Agora confirme se Nginx e Varnish estão escutando nos soquetes TCP configurados.

ss -tpln

Etapa 4: Testando a configuração do cache Nginx Varnish

16. Em seguida, verifique se as páginas da web estão sendo veiculadas por meio do Varnish Cache da seguinte maneira. Abra um navegador da web e navegue usando o IP do servidor ou FDQN conforme mostrado na imagem a seguir.

http://www.tecmin.lan
OR
http://10.42.0.144

17. Como alternativa, use o comando curl conforme mostrado. Use o endereço IP do seu servidor ou FQDN do site ou use 127.0.0.1 ou localhost se estiver testando localmente.

curl -I http:///www.tecmint.lan

Utilitários úteis de administração de cache do Varnish

18. Nesta seção final, descreveremos brevemente alguns dos programas utilitários úteis que acompanham o Varnish Cache, que você pode usar para controlar o varnishd. >, acesse logs na memória e estatísticas gerais e muito mais.

vernizadm

varnishadm um utilitário para controlar uma instância do Varnish em execução. Ele estabelece uma conexão CLI com o verniz. Por exemplo, você pode usá-lo para listar back-ends configurados conforme mostrado na captura de tela a seguir (leia man vernizadm para obter mais informações).

varnishadm
varnish> backend.list

vernizlog

O utilitário varnishlog fornece acesso a dados específicos da solicitação. Oferece informações sobre clientes e solicitações específicas (leia man vernizlog para mais informações).

varnishlog

vernizstat

Um varnishstat também conhecido como estatísticas de verniz, que fornece uma visão geral do desempenho atual do Varnish, fornecendo acesso a estatísticas na memória, como acertos e erros de cache, informações sobre o armazenamento , threads criados, objetos deletados (leia man vernizstat para mais informações).

varnishstat 

verniz top

Um utilitário varnishtop lê os logs de memória compartilhada e apresenta uma lista continuamente atualizada das entradas de log que ocorrem mais comumente (leia man verniztop para obter mais informações).

varnishtop 

envernizador

Um utilitário varnishhist (histórico de verniz) analisa os logs de verniz e gera um histograma continuamente atualizado mostrando a distribuição das últimas n solicitações por seu processamento ( leiaman vernizhist para obter mais informações).

varnishhist

Isso é tudo! Neste guia, mostramos como instalar o Varnish Cache e executá-lo na frente do servidor Nginx HTTP para acelerar a entrega de conteúdo da web no CentOS/RHEL 8.

Quaisquer opiniões ou perguntas sobre este guia podem ser compartilhadas usando o formulário de feedback abaixo. Para obter mais informações, leia a documentação do Varnish Cache.

A principal desvantagem do Varnish Cache é a falta de suporte nativo para HTTPS. Para ativar HTTPS em seu site/aplicativo, você precisa configurar um proxy de terminação SSL/TLS para funcionar em conjunto com o Varnish Cache para proteger seu site. Em nosso próximo artigo, mostraremos como habilitar HTTPS para Varnish Cache usando Hitch no CentOS/RHEL 8.