Pesquisa de site

Instale o Varnish Cache 5.2 para aumentar o desempenho do Apache no CentOS 7


Varnish Cache (comumente conhecido como Varnish) é um acelerador HTTP de proxy reverso popular e de código aberto destinado a acelerar servidores web. Ele foi projetado para endpoints de API excessivamente utilizados e também para sites dinâmicos que atendem conteúdo massivo e apresentam alto tráfego.

Basicamente, ajuda a reduzir a carga da CPU; suporta balanceamento de carga em servidores web e permite que um navegador carregue sites rapidamente como resultado do armazenamento do cache na RAM. Várias grandes empresas o utilizam, incluindo o Facebook, o Twitter e a Wikipedia, apenas para mencionar alguns.

Requisitos

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

Neste artigo, explicarei como instalar e usar o Varnish Cache 6.5 como front-end para um servidor web Apache no CentOS 7 ( também funciona no RHEL 7).

Etapa 1: Instale o servidor Web Apache no CentOS 7

1. Primeiro instale o servidor HTTP Apache a partir dos repositórios de software CentOS padrão usando o gerenciador de pacotes YUM da seguinte maneira.

yum install httpd

2. Uma vez instalado o Apache, inicie-o por enquanto e habilite-o para iniciar automaticamente na inicialização do sistema.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

3. Em seguida, atualize as regras de firewall 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

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 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_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 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, ele é 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 Apache para funcionar com o Varnish Cache

11. Agora configure o Apache para funcionar 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

Observação: Além disso, você precisa alterar a porta na configuração do seu host virtual para cada site que deseja servir via Varnish. Aqui está a configuração do 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 verniz 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 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";
}

Se o seu servidor back-end estiver sendo executado em um servidor diferente com endereço 10.42.1.10, o parâmetro host deverá apontar para esse endereço IP.

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

14. Após realizar todas as configurações necessárias, reinicie o cache HTTPD e Varnish para efetuar as alterações acima.

systemctl daemon-reload
systemctl restart httpd
systemctl restart varnish

Etapa 4: testar o cache do Varnish no Apache

15. Por último, 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 amostra
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 obter mais informações, verifique o repositório Github do Varnish Cache: 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. Caso você tenha alguma dúvida ou ideia adicional para compartilhar, use o formulário de feedback abaixo para nos escrever .