Como funciona o cache de verniz + proxy reverso NGINX
Publicados: 2022-08-09Neste artigo, discutiremos o proxy reverso NGINX do cache de verniz e como você pode configurá-lo.
Um servidor proxy com ênfase no cache HTTP é o Varnish. Ele é feito para ser um acelerador HTTP e pode funcionar como um proxy reverso para seu servidor web Apache ou NGINX. Sites com muito tráfego e alto destaque implementaram o Varnish.
Índice
O que é cache de verniz?
Para uma empresa baseada na web, o cache é frequentemente a peça de software mais importante. O Varnish Cache é um potente mecanismo HTTP de código aberto/proxy HTTP reverso que faz exatamente o que seu nome indica: armazena em cache (ou armazena) uma cópia de uma página da web na primeira vez que um visitante a visualiza. Isso pode acelerar um site em até 1000%. O Varnish faz uma única solicitação ao seu servidor para armazenar a página em cache, após o que ele trata de quaisquer solicitações subsequentes para a mesma página. Isso resulta em entrega de conteúdo incrivelmente rápida e menos demanda de recursos do servidor de back-end.
- As principais competências da Varnish são velocidade e desempenho.
- Economia na infraestrutura do servidor
- Escalabilidade - O verniz permite que seu site atenda a demanda independente do volume de visitantes ou solicitações.
- Proteção contra interrupções: o Varnish continua fornecendo informações armazenadas em cache, mesmo se o servidor travar.
- Flexibilidade: O Varnish Configuration Language (VCL) permite a criação de soluções, regras e módulos especializados.
- Experiência de usuário aprimorada
Como funciona o cache de verniz?
Antes de chegarem ao backend do seu servidor web, o Varnish processa todas as solicitações recebidas. Seu cache lida com todo o tráfego da web e, por padrão, é atualizado a cada dois minutos.
O Varnish encaminhará a solicitação para o backend do servidor web e armazenará o resultado em cache, como acabamos de ver no parágrafo genérico de proxy reverso se a solicitação não for armazenada em cache.
Depois que as solicitações são armazenadas em cache, elas são colocadas na memória e podem ser rapidamente recuperadas e enviadas aos clientes. O Varnish emprega a linguagem VCL para expressar configurações, políticas de cache e outras regras (Varnish Configuration Language).
Você pode responder a cada solicitação de maneira diferente usando esse idioma e suas variações. Por exemplo, você pode direcionar certas solicitações para um back-end específico ou instruir o Varnish a tomar uma ação diferente com base nas características da solicitação recebida ou em seus resultados.
O material em cache ainda pode ser fornecido mesmo quando o servidor da Web não está disponível devido a um recurso embutido chamado backend polling, que é outra função incrível do Varnish. O Varnish continuará a fornecer conteúdo em cache por um período de tempo conhecido como tempo de graça se detectar um tempo de inatividade. A pesquisa de back-end consulta o servidor em uma frequência que você pode definir com flexibilidade.
O que é Nginx?
O NGINX é um software de código aberto que pode ser usado para streaming de vídeo, armazenamento em cache, proxies reversos, serviço da Web e outras funções. Ele começou originalmente como um servidor web construído para máxima velocidade e confiabilidade. O NGINX pode operar como servidor HTTP, servidor proxy de e-mail (IMAP, POP3 e SMTP), proxy reverso e balanceador de carga para servidores HTTP, TCP e UDP, além de servir como servidor HTTP.
O que é proxy reverso?
A principal função de um proxy reverso é proteger os servidores web do tráfego de entrada. Cada solicitação de conexão é recebida por um proxy reverso, que a encaminha por vários servidores antes de se conectar ao que tratou da solicitação.
Cada operação de proxy reverso tem três fases principais:
- Coleta de solicitação de conexão: na borda da rede, o proxy reverso aceita solicitações de entrada.
- Aperto de mão de três vias TCP: Uma conexão com o proxy reverso é criada após um handshake de três vias TCP e a primeira conexão é fechada.
- Conexão do servidor de origem: usando um endereço IP fictício, o proxy reverso conecta o servidor de origem à solicitação do cliente.
Os usuários nunca podem se conectar diretamente a um servidor de origem, pois todas as conexões do navegador da Web com aplicativos da Web são sempre feitas por meio de um proxy reverso.
Como você pode configurar o proxy reverso Nginx do cache de verniz?
Instale o Nginx no seu servidor
Antes de tudo, precisamos instalar o Nginx do repositório do Ubuntu usando o comando apt
sudo apt update apt install nginx -y
Após a conclusão da instalação, precisamos iniciar e habilitar o Nginx para iniciar toda vez na inicialização do sistema usando o comando systemctl
systemctl start nginx systemctl enable nginx
Configurar Nginx na porta 88
Vamos configurar o Nginx para usar a porta HTTP não convencional 8080 para operação. Para fazer isso, devemos modificar os arquivos do host virtual localizados no diretório "sites-available".
nano /etc/nginx/sites-available/default
Altere o valor da linha 'ouvir' para 8080. Salve e saia.
Verifique se há erros testando as configurações do Nginx agora. Reinicie o serviço depois disso.
nginx -t systemctl restart nginx
Verifique o Nginx mais uma vez usando netstat
e confirme se ele está operando na porta HTTP não convencional 8080.
netstat -plntu
Ele foi instalado e a porta 8080 está sendo usada atualmente pelo servidor web Nginx.
Instale o verniz no Ubuntu
Temos que instalar o verniz usando o comando apt
sudo apt install varnish -y
Usando os comandos systemctl
listados abaixo, inicie o verniz e configure-o para iniciar automaticamente quando o sistema inicializar.
systemctl start varnish systemctl enable varnish
Por padrão, o verniz usará a porta 6082 para a interface da Web do administrador e a porta 6081 para acesso público. Certifique-se de que certas portas estejam listadas usando o comando netstat
para verificar.
netstat -plntu
O acelerador HTTP Varnish foi instalado
Configure o Varnish como um proxy reverso para Nginx
Como proxy reverso para o servidor web Nginx, o Varnish será usado. O servidor web Nginx estará operando na porta HTTP 8080, enquanto o Varnish estará rodando na porta HTTP 80.
Nesta fase, vamos configurar o Varnish para Nginx, identificar o servidor backend e modificar o Varnish para que ele use a porta HTTP 80 como sua porta padrão.
Edite o arquivo "default.vcl" indo para o diretório de configuração do verniz imediatamente. e verifique se o host é 127.0.0.1 e a porta é 8080
nano /etc/varnish/default.vcl
A configuração do backend está concluída.
O próximo passo é configurar o Varnish para usar a porta HTTP 80. Edite o arquivo de configuração do verniz indo para o diretório 'varnish' no diretório '/etc/default'.
nano /etc/default/varnish
Verifique se a porta padrão é 6081 e a porta HTTP é 80
O arquivo de serviço de verniz no diretório '/lib/systemd/system' agora deve ser editado. Edite o arquivo varnish.service indo para o diretório do sistema systemd.
cd /lib/systemd/system nano varnish.service
Substitua a porta HTTP 80 pela porta de verniz 6081 na linha 'ExecStart'.
Agora recarregue a configuração do systemd
e reinicie o verniz
systemctl daemon-reload systemctl restart varnish
Verifique o verniz usando o comando netstat
netstat -plntu
configuração de verniz como proxy reverso para Nginx foi concluída
Configurar firewall UFW
O firewall padrão legível por humanos no sistema operacional Ubuntu é chamado de "UFW". Use o comando apt mostrado abaixo para instalá-los se você ainda não tiver o pacote.
sudo apt install ufw
Ativaremos o firewall e abriremos novas portas SSH, HTTP e HTTPS.
os comandos ufw listados abaixo.
ufw allow ssh ufw allow http ufw allow https
Agora ligue o firewall e faça com que ele sempre inicialize no momento da inicialização.
ufw enable
Agora que o firewall UFW está ativo, as portas HTTP e HTTPS podem ser acessadas pela rede externa.