Varnish Cache (comumente conhecido como Varnish), é um acelerador de proxy reverso HTTP de código aberto popular destinado a acelerar servidores web. É projetado para endpoints de API altamente utilizados e também para sites dinâmicos que servem conteúdo massivo e experimentam alto tráfego.
Basicamente ajuda a reduzir a carga da CPU; suporta balanceamento de carga em servidores web e permite que um navegador da web carregue rapidamente sites como resultado do armazenamento do cache na RAM. Várias grandes empresas o utilizam, incluindo Facebook, Twitter, e Wikipedia para citar apenas algumas.
Requisitos
Neste artigo, explicarei como instalar e usar o Varnish Cache 6.5 como um front-end para um servidor web Apache no CentOS 7 (também funciona no RHEL 7).
Passo 1: Instalar o Servidor Web Apache no CentOS 7
1. Primeiro, instale o servidor HTTP Apache nos repositórios de software padrão do CentOS usando o gerenciador de pacotes YUM da seguinte forma.
# yum install httpd

2. Uma vez instalado o Apache, inicie-o temporariamente e habilite-o para iniciar automaticamente durante a inicialização do sistema.
# systemctl start httpd # systemctl enable httpd # systemctl status httpd

3. Próxima atualização do sistema para permitir pacotes de entrada na porta 80 usando os comandos abaixo.
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --reload

Passo 2: Instalar o Varnish Cache no CentOS 7
4. Agora existem pacotes RPM pré-compilados para a última versão do Varnish Cache 6 (ou seja, 6.5 no momento da redação), portanto, é necessário adicionar o repositório oficial do Varnish Cache.
Antes disso, é necessário habilitar o repositório EPEL para instalar vários pacotes de dependência conforme mostrado.
# yum install -y epel-release
5. Em seguida, instale o pygpgme, um pacote para lidar com assinaturas GPG e o yum-utils, uma coleção de utilitários úteis que estendem as funcionalidades nativas do yum de várias maneiras.
# yum install pygpgme yum-utils
6. Agora crie um arquivo chamado /etc/yum.repos.d/varnishcache_varnish65.repo que contém a configuração do repositório abaixo.
# vi /etc/yum.repos.d/varnishcache_varnish65.repo
Importante: Certifique-se de substituir el
e 7
na configuração abaixo pela sua distribuição e versão do Linux:
[varnishcache_varnish65] name=varnishcache_varnish65 baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 [varnishcache_varnish65-source] name=varnishcache_varnish65-source baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300
7. Agora execute o comando abaixo para atualizar o cache local do yum e instalar o pacote de cache varnish (não se esqueça de aceitar a chave GPG digitando y
ou yes
ao instalar o pacote):
# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65' # yum install varnish

8. Depois de instalar o Varnish Cache, o executável principal será instalado como /usr/sbin/varnishd e os arquivos de configuração do varnish estão localizados em /etc/varnish/:
- /etc/varnish/default.vcl – este é o arquivo de configuração principal do varnish, ele é escrito usando a linguagem de configuração do varnish (VCL).
9. Agora inicie o serviço do varnish, habilite-o para iniciar automaticamente durante a inicialização do sistema e verifique seu status para garantir que ele esteja funcionando da seguinte maneira.
# systemctl start varnish # systemctl enable varnish # systemctl status varnish

10. Você pode confirmar que a instalação do Varnish foi bem-sucedida ao ver a localização do executável do Varnish e a versão instalada em seu sistema.
$ which varnishd $ varnishd -V
Saída de exemplo
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64) Copyright (c) 2006 Verdens Gang AS Copyright (c) 2006-2020 Varnish Software
Passo 3: Configurar o Apache para Funcionar com o Varnish Cache
11. Agora configure o Apache para trabalhar em conjunto com o Varnish Cache. Por padrão, o Apache escuta na porta 80, você precisa alterar a porta HTTPD padrão para 8080 – isso garantirá que o HTTPD seja executado atrás do cache do Varnish.
Você pode usar o comando sed para alterar a porta 80 para 8080 conforme mostrado.
# sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf
Nota: Além disso, você precisa alterar a porta na configuração de host virtual para cada site que deseja servir via Varnish. Aqui está a configuração para 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>
12. Em seguida, abra o arquivo de configuração do systemd do Varnish e encontre o parâmetro ExecStart que especifica a porta em que o Varnish escuta e altere seu valor de 6081 para 80 conforme mostrado na captura de tela.
# systemctl edit --full varnish
A configuração deve ficar assim quando terminar.
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

13. Em seguida, configure o Apache como um servidor backend para o proxy do Varnish, no arquivo de configuração /etc/varnish/default.vcl.
# vi /etc/varnish/default.vcl
Encontre a seção backend e defina o IP e a porta do host. Abaixo está a configuração padrão do backend, ajuste isso para apontar para seu servidor de conteúdo real.
backend default { .host = "127.0.0.1"; .port = "8080"; }
Se seu servidor backend estiver em um servidor diferente 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"; }
14. Após realizar todas as configurações necessárias, reinicie o HTTPD e o cache do Varnish para aplicar as alterações acima.
# systemctl daemon-reload # systemctl restart httpd # systemctl restart varnish
Passo 4: Testar o Cache do Varnish no Apache
15. Por fim, teste se o Varnish está habilitado e funcionando com o serviço HTTPD usando o comando cURL abaixo, que pode ser usado para visualizar o cabeçalho HTTP.
# curl -I http://localhost
Saída de Exemplo
HTTP/1.1 200 OK Date: Wed, 06 Jan 2021 08:36:07 GMT Server: Apache/2.4.6 (CentOS) Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT ETag: "1321-5058a1e728280" Accept-Ranges: bytes Content-Length: 4897 Content-Type: text/html; charset=UTF-8 X-Varnish: 131085 Age: 0 Via: 1.1 varnish (Varnish/6.5) Connection: keep-alive
Para mais informações, confira o Repositório do Varnish Cache no Github: https://github.com/varnishcache/varnish-cache
Neste tutorial, explicamos como configurar o proxy Varnish Cache 6.5 para o servidor Apache HTTP no CentOS 7. Se você tiver alguma dúvida ou ideias adicionais para compartilhar, use o formulário de feedback abaixo para nos escrever
Source:
https://www.tecmint.com/install-varnish-cache-on-centos-7-for-apache/