Saiba como aumentar o desempenho do seu website usando Varnish



Caso você tenha um website com alto volume de acesso e conteúdo, provavelmente já deve ter se deparado com um consumo desproporcional de recursos computacionais; causando falta de memória e consequentemente falha na disponibilidade do seu serviço web. Comumente adotado como servidor o web, o Apache recebe diversas requisições aos conteúdos estáticos (páginas de estilo, scripts, páginas, outros) do site causando requisições e sobrecargas desnecessárias; já que essas informações não mudam (estáticas) e não precisariam de novas requisições a cada momento que fossem necessárias. Portanto, caso você queira aumentar o desempenho do seu site sem aumento de custos; você precisa utilizar o Varnish Cache.

O Varnish (“verniz”) Cache basicamente, armazena o conteúdo HTTP requisitado fazendo com que o servidor não consulte e processe diversas vezes o mesmo conteúdo solicitado. Tecnicamente, ele é um proxy HTTP Reverso muito eficiente que busca em cache o objeto da requisição e o retorna ao usuário final de forma extremamente ágil. Em outras palavras, o Varnish acelera as consultar ao seu website com alto volume de conteúdo.

O Varnish é open source (sob a licença BSD), porém o suporte comercial está disponível pela empresa Varnish Software.

Preciso usá-lo?!

Imagine só… você tem um site que recebe uma grande quantidade de visitas. Com certeza, se você não tiver um bom recurso computacional (memória + cores + disco) seu site irá demorar mais tempo para carregar ou ficará indisponível por um bom tempo.

Exemplo falha

Isto acontece porque a cada visita do seu cliente, é feita uma nova requisição ao servidor web. Essas requisições demandam processamento computacional para cada solicitação. Hipoteticamente, 400 visitantes ao seu site geram 400 solicitações repetidas ao servidor web! [desnecessário :/]

Sendo assim, caso você esteja diante de situação similar a esta; recomendo imediatamente o uso do Varnish Cache, que pode deixar seu site até 500x mais rápido. Entre outras vantagens:

Como o Varnish funciona?

Com o Varnish configurado, toda requisição feita ao seu website é diretamente armazenada uma cópia das páginas em memória (cache), com o intuito de que na próxima visita a página, anteriormente, solicitada já esteja carregada; reduzindo significativamente as requisições ao seu servidor web:

Funcionamento Varnish

Quando um visitante acessa uma página que ainda não está salva na memória do Varnish (cache), o mesmo acessa o servidor Web, e armazena essa página para que as próximas visitas, seu site fique muito mais rápido.

Mão na massa

No ambiente de testes foi utilizado o Debian 7.8 – 64 bits. Servidor Web Apache 2.2 e Varnish Cache 3.0. Configurações de 2GB RAM, 2 cores e 20GB disco.

Instalando o Apache 2

Execute o comando como root:

apt-get install apache2

Instalando o Varnish

Execute o comando como root:

apt-get install varnish

Configurando o Varnish

Primeiramente, os arquivos de configuração do Varnish estão localizados no /etc/varnish/default.vcl e /etc/default/varnish. O arquivo default.vcl possui toda configuração de cache e de comunicação ao Apache.

Vamos agora editar o arquivo de configuração, executando o comando abaixo:

nano /etc/default/varnish

Procure por um trecho similar a esse, e deixe as configurações conforme exemplo abaixo (apenas descomente):

## Alternative 2, Configuration with VCL
#
# Listen on port 6081, administration on localhost:6082, and forward to
# one content server selected by the vcl file, based on the request. Use 
# a 1GB fixed-size cache file.
#
DAEMON_OPTS=”-a :80
-T localhost:6082
-f /etc/varnish/default.vcl
-S /etc/varnish/secret
-s malloc,256m”

Agora, vamos editar o arquivo default.vcl. Execute o comando conforme abaixo:

nano /etc/varnish/default.vcl

Deixe configurado conforme linha abaixo:

backend default {
.host = “127.0.0.1”;
.port = “8080”;
}

Esta alteração informa onde o Varnish irá buscar informações de páginas quando o cache não tiver informações suficientes. Em outras palavras, como o Varnish ficará na frente (frontend) das requisições do servidor Apache; o arquivo default.vcl contém as informações do backend, ou seja, o próprio servidor Apache ;-) A imagem anterior exemplifica isso.

Configurando o Apache

Por fim, é preciso alterar a porta de conexão do Apache (padrão 80) para trabalhar na porta 8080, pois o Varnish irá escutar na porta 80. Altere o arquivo /etc/apache2/ports.conf

nano /etc/apache2/ports.conf

NameVirtualHost *:8080
Listen *:8080

Depois, é preciso configurar todos os VHosts existentes (nesse caso apenas o default):

nano /etc/apache2/sites-available/default

VirtualHost *:8080

Reinicie os serviços: Apache e Varnish Cache:

invoke-rc.d apache2 restart
invoke-rc.d varnish restart

PRONTO!! Acesse seu site normalmente. Agora o Varnish está respondendo as requisições do cliente; e repassando ao Apache quando for preciso.

Para ter informações sobre o desempenho do Varnish, execute:

varnishstat

Referências

gravatar

Ricardo Ferreira

Criador e administrador desse portal para Sysadmin Linux. Possui mais de 6 anos de experiência com administração de servidores Linux. Pretende compartilhar todo seu conhecimento e experiência, da mesma forma como no Linux Descomplicado, onde também é criador e administrador ;-)

Quer receber novidades diretamente no e-mail?!

Informe seu endereço de e-mail:

Deixe seu comentário:



2016 - Para este material, você precisa informar a origem e criar conteúdo com a mesma licença para poder usá-lo. Licença Creative Commons BY-NC-SA 4.0

"Este material foi publicado originalmente por Ricardo Ferreira em Sysadmin | Linux Descomplicado com título e link Saiba como aumentar o desempenho do seu website usando Varnish."

comments powered by Disqus