Pesquisa de site

Como instalar o Varnish Cache 5.2 para Nginx no CentOS 7


Varnish Cache (também conhecido como Varnish) é um acelerador HTTP de código aberto e de alto desempenho projetado para acelerar servidores web. Em nossos últimos artigos, explicamos como configurar o Varnish Cache para Apache no CentOS 7 e CentOS 8.

Neste artigo, mostraremos como instalar e usar o Varnish Cache como front-end para o servidor HTTP Nginx no CentOS 7. Este guia também deve funcionar no RHEL 7.

Requisitos

  1. Um CentOS 7 com Apache instalado
  2. Um CentOS 7 com endereço IP estático

Etapa 1: Instale o servidor Web Nginx no CentOS 7

1. Comece instalando o servidor Nginx HTTP dos repositórios de software CentOS padrão usando o gerenciador de pacotes YUM da seguinte maneira.

yum install nginx

2. Quando a instalação for concluída, inicie o serviço Nginx por enquanto e ative-o para iniciar automaticamente na inicialização do sistema.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Agora modifique as regras de 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

Etapa 2: Instale 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 em que este artigo foi escrito), 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 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 seu cache yum local e instalar o pacote de cache de verniz (não se 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 a instalação do Varnish Cache, o executável principal será instalado como /usr/sbin/varnishd e os arquivos de configuração do verniz estão localizados em >/etc/varnish/:

  • /etc/varnish/default.vcl – este é o arquivo de configuração principal do verniz, é escrito usando a linguagem de configuração Vanish (VCL).

9. Agora inicie o serviço de verniz, 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 se a instalação do Varnish foi bem-sucedida vendo a localização do executável do Varnish e a versão instalada em seu sistema.

which varnishd
varnishd -V
Saída de amostra
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

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

11. Nesta etapa, você precisa configurar o Nginx para funcionar com o Varnish Cache. Por padrão, o Nginx escuta na porta 80, você deve alterar a porta padrão do Nginx para 8080 para que ele seja executado 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-a para listen 8080 como no servidor bloco mostrado na imagem abaixo.

vi /etc/nginx/nginx.conf

Nota: Isso deve ser feito em todos os arquivos de configuração de bloco de servidor (geralmente criados em /etc/nginx/conf.d/) para sites que você deseja servir via >Verniz.

12. Em seguida, abra o arquivo de configuração do serviço de verniz 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 ter a aparência mostrada.

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

13. Em seguida, configure o Nginx como um servidor back-end para o proxy 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 de backend padrão, defina-a para apontar para o seu servidor de conteúdo real.

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

14. Depois de realizar todas as configurações necessárias, reinicie o Nginx HTTPD e o cache Varnish para efetuar as alterações acima.

systemctl daemon-reload
systemctl restart nginx
systemctl restart varnish

Etapa 4: testar o cache do Varnish no Nginx

15. Por fim, teste se o cache do Varnish está habilitado 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 Github do Varnish Cache: https://github.com/varnishcache/varnish-cache

Neste tutorial, explicamos como configurar o Varnish Cache para o servidor HTTP Nginx no CentOS 7. Use o formulário de comentários abaixo para nos enviar quaisquer dúvidas ou ideias extras.