Neste artigo, mostraremos como instalar e usar o Varnish Cache como um frontend para o servidor HTTP Nginx no CentOS 7. Este guia também deve funcionar no RHEL 7.
Requisitos
Passo 1: Instalar o Servidor Web Nginx no CentOS 7
1. Comece instalando o servidor HTTP Nginx nos repositórios de software padrão do CentOS usando o gerenciador de pacotes YUM da seguinte forma.
# yum install nginx

2. Quando a instalação for concluída, inicie o serviço Nginx por enquanto e habilite-o para iniciar automaticamente na inicialização do sistema.
# systemctl start nginx # systemctl enable nginx # systemctl status nginx

3. Agora, modifique as regras do firewall do sistema para permitir pacotes de entrada na porta 80 usando os comandos abaixo.
# firewall-cmd --zone=public --permanent --add-port=80/tcp # firewall-cmd --reload # firewall-cmd --zone=public --permanent --add-port=8080/tcp # firewall-cmd --reload

Passo 2: Instalar o Varnish Cache no CentOS 7
4. Agora existem pacotes RPM pré-compilados para a versão mais recente do Varnish Cache 6 (ou seja, 6.5 no momento da escrita), portanto, você precisa adicionar o repositório oficial do Varnish Cache.
Antes disso, você precisa habilitar o repositório EPEL para instalar vários pacotes de dependência, conforme mostrado.
# yum install -y epel-release
5. Em seguida, instale pygpgme, um pacote para lidar com assinaturas GPG e yum-utils, uma coleção de utilitários úteis que estendem os recursos nativos do yum de várias maneiras.
# yum install pygpgme yum-utils
6. Agora crie um arquivo chamado /etc/yum.repos.d/varnishcache_varnish5.repo que contenha 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 com sua distribuição Linux e versão:
[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 yum local e instalar o pacote de cache do varnish (não esqueça de aceitar a chave GPG digitando y
ou yes
durante a instalação do pacote):
# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65' # yum install varnish

8. Após 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 vanish (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 esteja em execução da seguinte forma.
# systemctl start varnish # systemctl enable varnish # systemctl status varnish

10. Você pode confirmar que a instalação do Varnish foi bem-sucedida ao verificar a localização do executável do Varnish e a versão instalada em seu sistema.
$ which varnishd $ varnishd -V
Exemplo de Saída
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64) Copyright (c) 2006 Verdens Gang AS Copyright (c) 2006-2020 Varnish Software
Passo 3: Configurar o Nginx para Funcionar com o Cache do Varnish
11. Neste passo, você precisa configurar o Nginx para funcionar com o Cache do Varnish. Por padrão, o Nginx escuta na porta 80, você deve alterar a porta padrão do Nginx para 8080 para que ele funcione atrás do cache do Varnish.
Abra o arquivo de configuração do Nginx /etc/nginx/nginx.conf e encontre a linha listen 80 e altere para listen 8080 como mostrado no bloco de servidor abaixo.
# vi /etc/nginx/nginx.conf

Nota: Isso deve ser feito em todos os arquivos de configuração do bloco do servidor (geralmente criados em /etc/nginx/conf.d/) para os sites que você deseja servir via Varnish.
12. Em seguida, abra o arquivo de configuração do serviço 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.
# systemctl edit --full varnish
A linha deve ficar como mostrado.
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

13. Em seguida, configure o Nginx 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 do host e a porta. Abaixo está a configuração padrão do backend, configure isso para apontar para seu servidor de conteúdo real.
backend default { .host = "127.0.0.1"; .port = "8080"; }
14. Após realizar todas as configurações necessárias, reinicie o HTTPD do Nginx e o cache do Varnish para efetivar as mudanças acima.
# systemctl daemon-reload # systemctl restart nginx # systemctl restart varnish
Passo 4: Teste o Cache do Varnish no Nginx
15. Por fim, teste se o cache do Varnish está ativado e funcionando com o serviço Nginx usando o comando cURL abaixo para visualizar o cabeçalho HTTP.
# curl -I http://localhost
Saída de Amostra
HTTP/1.1 200 OK Server: nginx/1.16.1 Date: Wed, 06 Jan 2021 09:24:18 GMT Content-Type: text/html Content-Length: 4833 Last-Modified: Fri, 16 May 2014 15:12:48 GMT ETag: "53762af0-12e1" X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/6.5) Accept-Ranges: bytes Connection: keep-alive
Você pode encontrar informações adicionais no Repositório do GitHub do Varnish Cache: https://github.com/varnishcache/varnish-cache
Neste tutorial, explicamos como configurar o Cache do Varnish para o servidor HTTP Nginx no CentOS 7. Use o formulário de comentários abaixo para nos enviar qualquer dúvida ou ideia extra.
Source:
https://www.tecmint.com/install-varnish-cache-for-nginx-on-centos-7/