O Varnish Cache para quem não sabe é um software open source para melhorar a performance do seu servidor, em outras palavras ele é um acelerador que pode atuar em conjunto com qualquer servidor que “fale” HTTP (Apache, Nginx), mas, por que o apache não é suficiente?
A verdade é que o apache apesar de ser um software muito poderoso, infelizmente não consegue suprir SOZINHO uma demanda muito alta de acessos, existem outras alternativas como o Nginx, LiteSpeed ou algum outro servidor HTTP, mas eles tem algumas desvantagens em comparação com o Apache que é o que a maioria das pessoas conhece (o nginx por exemplo não suporta arquivos .htaccess).
Quem usa o wordpress geralmente tenta minimizar isso utilizando plugins de cache como WP Super Cache, Hyper Cache, dentre outros, porém, a performance continua não sendo tão boa quanto poderia, para solucionar este problema o cenário ideal é utilizar o Varnish Cache…
Por que usar o Varnish Cache?
É uma perguntinha básica né? se eu estou dizendo para você usar, o mínimo que eu posso fazer é te dar os motivos pelo qual você deve usar o varnish, e alguns desses motivos são:
- Redução do load do servidor.
- Melhorar o tempo de carregamento do site/blog por que o cache é armazenado na RAM.
- ele mantém o cache dos arquivos estáticos mais acessados e dispõe estes arquivos para o visitante sem fazer processos de backend.
Para seguir adiante o seu servidor já deve estar configurado com softwares como Apache, PHP e MySQL, no momento em que este post foi escrito a versão estável do varnish cache é a 3.0.5, se quiser conferir a última versão dá um olhada aqui.
logado na sua máquina como root, vá para o diretório raiz com o comando:
[code language=”bash”]cd ~ [/code]
execute o seguinte comando para adicionar o repositório.
[code language=”bash”] rpm -Uvh http://repo.varnish-cache.org/redhat/varnish-3.0/el6/noarch/varnish-release/varnish-release-3.0-1.el6.noarch.rpm [/code]
depois disso, execute o comando para instalar o varnish.
[code language=”bash”] yum install varnish [/code]
se o prompt pedir confirmação, simplesmente aperte “Y” e seja feliz, a instalação não demora muito tempo…
Feito este passo “super difícil”, agora vamos configurar o varnish para trabalhar com o apache, no centOS ou fedora, o arquivo de configuração do varnish fica em “/etc/sysconfig/varnish”, sabendo disso vamos editar o arquivo, para isso pode usar o seu editor de textos favorito, no meu caso vou usar o vim.
[code language=”language=”] vi /etc/sysconfig/varnish [/code]
Descendo um pouco, você vai reparar em um trecho semelhante ao da imagem abaixo.
Vamos desabilitar a alternativa 3, colocando uma tralha na frente, e habilitar a alternativa 2 removendo a tralha das opções.
Mude a porta da opção “-a” para 80 (supondo que o seu apache rode na porta 80) e na opção “-s” configure de acordo com a RAM da sua máquina, o recomendável é algo em torno de 25% da memória da máquina (esta máquina do print tinha 4GB de ram), feito isso salve e volte pro prompt.
Agora é necessário configurar o apache para trabalhar com o varnish, para isso vamos alterar o arquivo de configuração do apache.
[code language=”bash”] vi /etc/httpd/conf/httpd.conf [/code]
Altere o trecho acima para todos os IP’s que trabalham com o apache no seu servidor, altere nesse arquivo também o trecho, NameVirtualHost 127.0.0.1:80 e caso existam sites adicionados altere também seus ip’s (no meu caso por se tratar de máquina virtual de estudo, o IP é o localhost, certifique-se de usar os ips reais da sua máquina caso seja um servidor na internet).
Feito isso, salve e reinicia apache e varnish.
[code language=”bash”]service httpd restart [/code]
[code language=”bash”]service varnish restart [/code]
Agora você pode testar o seu site e tudo deverá estar ok, para se certificar que o seu site está sendo servido via varnish você pode usar o firebug para verificar os cabeçalhos ou você pode utilizar a ferramenta domain dossier do centralops, marque a opção “service scan” e você deverá ver a mensagem: “Via: 1.1 varnish”.
Dúvidas? pergunte e eu respondo o mais rápido possível (ou não).
Instalando o Varnish Cache no CentOS,