Como instalar e configurar o Varnish no Ubuntu 20.04
Introdução
A administração de serviços web é uma tarefa elementar hoje em dia na gestão de um servidor. É por isso que sempre existem ferramentas que nos ajudam na tarefa. Um deles é a aceleração do servidor web, algo que parece básico em nossos tempos.
Para te ajudar com isso é que existe este post para que você possa instalar e configurar o Varnish no Ubuntu 20.04.
O que é o Varnish?
De acordo com o site oficial do Varnish:
Varnish Cache é um acelerador de aplicativo da web também conhecido como proxy reverso HTTP de cache. Você o instala na frente de qualquer servidor que fala HTTP e o configura para armazenar o conteúdo em cache. O Varnish Cache é muito, muito rápido. Normalmente acelera a entrega com um fator de 300 - 1000x, dependendo da sua arquitetura
Uma das principais características do Varnish Cache, além de seu desempenho, é a flexibilidade de sua linguagem de configuração, VCL. A VCL permite que você escreva políticas sobre como as solicitações de entrada devem ser tratadas. Nessa política, você pode decidir qual conteúdo deseja veicular, de onde deseja obter o conteúdo e como a solicitação ou resposta deve ser alterada.
Outro aspecto interessante é que o Varnish possui um código aberto lançado sob a licença FreeBSD. Este projeto nasceu em 2005 portanto tem uma longa trajetória que tem permitido ganhar experiência.
Portanto, o Varnish é uma ferramenta muito útil para nossos servidores web, especialmente quando enfrentamos muito tráfego.
Instale e configure o Varnish no Ubuntu 20.04
O Varnish é muito flexível e é por isso que pode ser configurado tanto no Nginx quanto no Apache . Sendo este último, a escolha atual por ser muito popular.
Primeira etapa: instalar e configurar o Apache
A primeira etapa é instalar o Apache no Ubuntu 20.04 e, em seguida, fazer algumas configurações para configurá-lo com o Varnish.
Portanto, em um ambiente de linha de comando primeiro, atualize o sistema operacional.
sudo apt update
sudo apt upgrade
Depois disso, instale o Apache do repositório oficial do Ubuntu 20.04.
sudo apt install apache2
Se o seu servidor estiver rodando atrás de um Firewall, certifique-se de abrir as portas do Apache.
sudo ufw allow http
sudo ufw allow https
Agora você precisa alterar a porta que o Apache usa por padrão, 80 para isso você precisa modificar o arquivo ports.conf
sudo nano /etc/apache2/ports.conf
E procure a linha de escuta e defina outra porta. Nesse caso, vou escolher 8080
Listen 8080
Salve as alterações e feche o editor.
Agora você deve fazer o mesmo no arquivo de configuração padrão do Virtualhost:
sudo nano /etc/apache2/sites-available/000-default.conf
E substitua a linha VirtualHost por esta:
Salve as alterações e feche o arquivo.
Lembre-se de que toda vez que você adiciona um novo VirtualHost, você deve alterar a porta em seu arquivo de configuração.
Você pode testar a sintaxe das configurações para erros:
sudo apachectl configtest
Syntax OK
Finalmente, para aplicar as mudanças, reinicie o Apache.
sudo systemctl restart apache2
Agora vamos para o varnish
Segunda etapa: Instale o Varnish no Ubuntu 20.04
O Varnish está disponível nos repositórios oficiais do Ubuntu, então a instalação é bem fácil de fazer.
Portanto, para instalar o Varnish, execute o seguinte comando:
sudo apt install varnish
Você pode iniciar o serviço e habilitá-lo para ser executado na inicialização do sistema
sudo systemctl start varnish
sudo systemctl enable varnish
Depois disso, você deve fazer algumas configurações para que funcione com o Apache.
Então, Varnish usa VCL para suas configurações, então temos que editar o arquivo de configuração padrão.
Antes disso, faça um backup:
cd /etc/varnish/
sudo cp default.vcl default.vcl.bak
sudo nano default.vcl
E dentro da seção padrão do back-end, certifique-se de que ele tenha a seguinte configuração:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Como você pode notar, estamos indicando que ele escutará na porta 8080 em localhost para o Apache.
E também é necessário fazer alterações em outro arquivo de configuração:
cd /etc/default/
sudo nano varnish
Na seção não comentada de, DAEMON_OPTS altere a porta de escuta e deixe-a como segue:
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Salve as alterações e feche o arquivo.
Agora é hora de fazer uma última alteração e é no arquivo que gerencia o serviço Varnish onde você deve modificar a porta de escuta.
sudo nano /lib/systemd/system/varnish.service
Em seguida, localize a linha ExecStart e substitua-a por esta
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
Salve as alterações e feche o arquivo.
Para aplicar as mudanças, atualize os serviços Systemd
sudo systemctl daemon-reload
E reinicie o Varnish
sudo systemctl restart varnish
Para verificar se está tudo bem tem que solicitar o site com o comando Curl
curl -I seusite.com
Substitua seusite.com< pelo endereço do seu site.
Você deve receber uma saída semelhante a esta:
HTTP/1.1 200 OK
Date: Mon, 11 Oct 2021 16:30:3 GMT
Server: Apache/2.4.41 (Ubuntu)
Last-Modified: Mon, 11 Oct 2021 16:30:35 GMT
Vary: Accept-Encoding
Content-Type: text/html
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.2)
ETag: W/"5fc1-5ba52f8dzk12g-gzip"
Accept-Ranges: bytes
Content-Length: 7252
Connection: keep-alive
Desta forma, o Varnish será instalado e configurado.
Conclusão
O Varnish junto com o Apache é uma boa combinação que ajudará nosso servidor web a processar melhor todos os sites que podemos implantar. E como pudemos demonstrar, a configuração não é um assunto complicado.