BLOG | NGINX

Proxy reverso usando NGINX Plus

NGINX-Parte-de-F5-horiz-preto-tipo-RGB
Miniatura de Rick Nelson
Rick Nelson
Publicado em 10 de abril de 2014

O NGINX ganhou fama justificável como um servidor web de altíssimo desempenho. Acredito que muitas pessoas sabem que o NGINX também pode ser usado como um proxy reverso, mas talvez não saibam o quão poderoso ele é.

O que é um proxy reverso?

Vamos começar dando um passo para trás e perguntando: o que é um servidor proxy?  Acho que a Wikipédia tem uma boa definição:

[Um] servidor proxy é um servidor (um sistema de computador ou um aplicativo) que atua como intermediário para solicitações de clientes que buscam recursos de outros servidores.

Então, um servidor proxy fica entre um cliente e o servidor real que hospeda os dados que o cliente está procurando. Para o cliente, o servidor proxy parece ser o servidor backend real, e para o servidor backend, o servidor proxy parece um cliente. Para definir um servidor proxy reverso, voltamos à Wikipedia :

[Um] proxy reverso é um tipo de servidor proxy que recupera recursos em nome de um cliente de um ou mais servidores.

A diferença é que um servidor proxy fica entre os clientes e apenas um servidor backend, mas um servidor proxy reverso fica na frente de um ou mais servidores backend e decide qual deles usar para cada solicitação.

Quais são os benefícios de usar um proxy reverso?

Por que você desejaria usar um servidor proxy reverso?  Há uma série de benefícios:

  • Concorrência – Os aplicativos de Internet geralmente envolvem um grande número de clientes, cada um abrindo várias conexões, resultando em um número muito grande de conexões com os servidores de back-end. Muitos servidores web e servidores de aplicativos não lidam bem com grandes números de conexões (o NGINX, quando usado como servidor web, é uma exceção), portanto, adicionar um proxy reverso que possa lidar melhor com múltiplas conexões pode resultar em uma melhoria significativa no desempenho do servidor de backend.
  • Resiliência – Se os clientes estiverem se conectando diretamente a um servidor de backend e ele sofrer uma falha, todos os clientes atualmente conectados (ou tentando se conectar) ao servidor verão suas solicitações falharem. Um servidor proxy reverso pode monitorar a integridade dos servidores de backend e interromper o envio de solicitações para um servidor com falha até que ele volte a funcionar. Os clientes não veem um erro porque o proxy reverso envia automaticamente suas solicitações para os servidores de backend que ainda estão operacionais.
  • Escalabilidade – Como um proxy reverso é a única “face pública” para o grupo de servidores de backend, você pode adicionar e remover servidores em resposta à alteração da carga de tráfego.
  • Roteamento de camada 7 – Um proxy reverso vê o tráfego direcionado a todos os servidores e pode tomar decisões inteligentes sobre para onde enviar cada solicitação, modificando solicitações e respostas conforme necessário. Ele pode tomar decisões de roteamento com base em um determinado cabeçalho HTTP na solicitação, parte de uma URL, a localização geográfica do cliente e assim por diante.
  • Cache – Um proxy reverso é um ótimo lugar para fazer cache – geralmente é muito mais eficiente armazenar conteúdo em cache lá do que enviar todas as solicitações para servidores de backend e fazer com que cada servidor de backend crie seu próprio cache.
  • Outras funções – Ao ficar na frente dos servidores de backend, um proxy reverso também pode executar outras funções, como modelagem de tráfego com base na largura de banda ou taxa de solicitação, limitação de conexão, integração com vários esquemas de autorização, monitoramento de atividades e muito mais.

Usando NGINX Plus como um proxy reverso

O NGINX Plus introduz ainda mais recursos aos renomados recursos do servidor web do NGINX Open Source, tornando o NGINX Plus um controlador de entrega de aplicativos (ADC) completo, capaz de substituir dispositivos de hardware proprietários.

A seguir estão apenas alguns dos recursos disponíveis no NGINX Plus.

Balanceamento de carga

Há vários algoritmos de balanceamento de carga para escolher, ponderados e não ponderados. A persistência de sessão também é suportada. O NGINX Plus pode balancear a carga de HTTP, HTTPS, WebSocket, FastCGI, memcached, SCGI, SPDY [obsoleto pelo HTTP/2, que o NGINX Plus também balanceia a carga] e uwsgi. Leia mais .

Verificações de integridade

Há suporte para monitoramento passivo e ativo da integridade do servidor de backend. Se o NGINX Plus não conseguir se conectar a um nó, esse nó será marcado como inativo. Verificações de integridade ativas também podem ser configuradas para serem executadas periodicamente em nós de backend. Além disso, o recurso de inicialização lenta pode ser usado para que o NGINX Plus aumente lentamente o tráfego para um nó que acabou de ficar online, para evitar sobrecarregá-lo com uma explosão de tráfego pesado. Leia mais .

Roteamento de solicitação

O tráfego pode ser roteado com base em qualquer parte de uma solicitação, como endereço IP do cliente, nome do host, URI, sequência de consulta, cabeçalhos, etc.

Reescrita de solicitação e resposta

Qualquer parte de uma solicitação ou resposta pode ser modificada, incluindo cabeçalhos, corpo e URI. O NGINX Plus também pode adicionar e excluir cabeçalhos. Leia mais .

Cache

As respostas podem ser armazenadas em cache, e você pode configurar os tipos de conteúdo a serem armazenados em cache e por quanto tempo. Você também pode limpar itens do cache. Leia mais .

Compressão

A compactação Gzip é suportada, com controle preciso sobre qual conteúdo compactar e quando usar a compactação. Leia mais .

Processamento SSL/TLS

A criptografia e descriptografia SSL/TLS são suportadas e a descriptografia pode ser feita para muitos nomes de domínio usando certificados diferentes. Leia mais .

Monitoramento e registro de atividades ao vivo

As estatísticas do NGINX Plus codificadas no formato JSON estão disponíveis por meio de uma simples solicitação HTTP. Uma página da web do painel é fornecida para exibir as estatísticas, ou você pode alimentá-las com ferramentas de monitoramento personalizadas ou de terceiros. Logs com formato personalizado podem ser configurados para registro local e exportação para syslog. Leia mais .

E muito mais

O NGINX tem muitos outros recursos, como suporte para streaming de vídeo, suporte a proxy de e-mail, suporte a GeoIP, reinicializações e atualizações suaves sem tempo de inatividade, modelagem de tráfego, limitação de conexão e muito mais. Para mais informações, visite-nos em nginx.com e nginx.org .


"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."