Como funciona o cache de verniz + proxy reverso NGINX

Publicados: 2022-08-09

Neste 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.

Cache de verniz Nginx proxy reverso

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:

  1. Coleta de solicitação de conexão: na borda da rede, o proxy reverso aceita solicitações de entrada.
  2. 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.
  3. 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.