10 Principais Servidores de Proxy Reverso de Código Aberto para Linux

A reverse proxy server is a type of proxy server that is deployed between clients and back-end/origin servers, for example, an HTTP server such as NGINX, Apache, etc.. or application servers written in Nodejs, Python, Java, Ruby, PHP, and many other programming languages.

É um gateway ou um servidor intermediário que recebe uma solicitação do cliente, a repassa para um ou mais servidores de back-end e posteriormente busca a resposta do servidor e a entrega de volta ao cliente, fazendo com que pareça que o conteúdo originou-se do próprio servidor proxy reverso.

Geralmente, um servidor proxy reverso é um proxy interno usado como um ‘front-end’ para controlar e proteger o acesso aos servidores de back-end em uma rede privada: geralmente é implantado atrás do firewall de rede.

Ajuda os servidores de back-end a alcançar o anonimato para aumentar sua segurança. Na infraestrutura de TI, um proxy reverso também pode funcionar como um firewall de aplicativos, balanceador de carga, terminador TLS, acelerador da web (através do cache de conteúdo estático e dinâmico) e muito mais.

Neste artigo, vamos revisar os 10 principais servidores proxy reversos de código aberto que você pode usar em um sistema Linux.

1. HAProxy – (Balanceador de Carga TCP/HTTP)

HAProxy (HAProxy, que significa Proxy de Alta Disponibilidade), é um software de balanceamento de carga e proxying muito rápido, confiável e de alta qualidade, gratuito e de código aberto para aplicações baseadas em TCP e HTTP, construído para alta disponibilidade.

HAProxy é um proxy reverso HTTP, um proxy e normalizador de TCP, um iniciador/terminador/offloader de SSL/TLS, um proxy de cache, um offloader de compressão HTTP, um regulador de tráfego, um switch baseado em conteúdo, uma gateway FastCGI e muito mais. Também é uma proteção contra DDoS e abuso de serviço.

É alimentado por um mecanismo orientado a eventos e não bloqueante que combina uma camada de E/S muito rápida com um agendador de vários threads baseado em prioridade, o que permite lidar facilmente com dezenas de milhares de conexões concorrentes.

Notavelmente, o HAProxy usa o protocolo PROXY para passar as informações de conexão do cliente para os servidores de backend ou origem, de modo que uma aplicação obtenha todas as informações relevantes.

Algumas das características básicas do HAProxy incluem proxy, suporte SSL, monitoramento dos estados dos servidores e seu estado, alta disponibilidade, balanceamento de carga, persistência (mantendo um visitante no mesmo servidor mesmo em vários eventos), comutação de conteúdo, reescrita e redirecionamento HTTP, proteção de servidor, registro, estatísticas e muito mais.

2. NGINX – (Servidor Web HTTP e Proxy Reverso)

NGINX é um servidor HTTP e proxy reverso gratuito, de código aberto, de alto desempenho e muito popular. Também funciona como um servidor proxy IMAP/POP3. NGINX é conhecido por seu alto desempenho, estabilidade, conjunto de recursos rico, configuração simples e flexível e baixo consumo de recursos (particularmente pegada de memória pequena).

Assim como o HAProxy, o NGINX possui uma arquitetura orientada a eventos, então não tem problema em lidar com dezenas de milhares de conexões simultâneas, pois utiliza o protocolo PROXY do HAProxy.

O NGINX suporta proxy reverso acelerado com cache usando o módulo ngx_http_proxy_module, que permite encaminhar solicitações para outro servidor por meio de protocolos diferentes do HTTP, como FastCGI, uwsgi, SCGI e Memcached.

Importante, ele suporta balanceamento de carga e tolerância a falhas, que são aspectos vitais de sistemas de computação distribuída em larga escala. O módulo ngx_http_upstream_module permite definir grupos de servidores backend para distribuir as solicitações dos clientes.

Isso torna suas aplicações mais robustas, disponíveis e confiáveis, altamente escaláveis, com tempo de resposta e throughput. Além disso, em relação à segurança, ele suporta terminação SSL/TLS e muitos outros recursos de segurança.

Artigos úteis sobre o servidor web Nginx que você pode gostar de ler:

3. Varnish – (Proxy de Cache Reverso)

Varnish HTTP Cache (ou Varnish Cache ou simplesmente Varnish) é um software de proxy de cache reverso gratuito, de código aberto, de alto desempenho e muito popular, conhecido como um acelerador de aplicativos da web, projetado para melhorar o desempenho HTTP usando o cache do lado do servidor.

Ele é implantado entre um cliente e um servidor web HTTP ou servidor de aplicativos; toda vez que um cliente solicita informações ou um recurso de um servidor web, o Varnish armazena uma cópia das informações, então da próxima vez que o cliente solicitar as mesmas informações, o Varnish as servirá sem enviar uma solicitação ao servidor web, reduzindo assim a carga no servidor e, consequentemente, acelerando a entrega de conteúdo da web.

O Varnish usa uma linguagem de configuração flexível conhecida como a Linguagem de Configuração do Varnish (VLC), que, entre outras coisas, permite aos administradores do sistema configurar como as solicitações recebidas devem ser processadas, que conteúdo deve ser servido e de onde, e como a solicitação ou resposta deve ser alterada, e muito mais.

O verniz também é extensível – pode ser estendido usando Módulos de Verniz (VMODs) e os usuários podem escrever seus módulos personalizados ou usar módulos fornecidos pela comunidade.

A principal limitação do Verniz é a falta de suporte para SSL/TLS. A única maneira de habilitar o HTTPS é implantar um terminador ou offloader de SSL/TLS como HAProxy ou NGINX na frente dele.

4. Træfɪk – (O Proxy de Aplicação Nativo da Nuvem)

Træfɪk (pronunciado Traffic) é um proxy reverso HTTP gratuito, de código aberto, moderno e rápido, e um balanceador de carga para implantar micro-serviços que suporta múltiplos algoritmos de balanceamento de carga.

Ele pode se integrar com vários provedores (ou mecanismos de descoberta de serviço ou ferramentas de orquestração) como Kubernetes, Docker, Etcd, Rest API, Mesos/Marathon, Swarm e Zookeeper.

Seu recurso adorável é sua capacidade de gerenciar sua configuração automaticamente e dinamicamente, descobrindo assim a configuração correta para seus serviços. Ele faz isso escaneando sua infraestrutura para encontrar informações relevantes e descobrir qual serviço atende a qual solicitação do mundo externo. Os provedores informam ao Træfɪk onde estão localizados seus aplicativos ou micro-serviços.

Outros recursos do Træfɪk são suportados para WebSockets, HTTP/2 e GRPC, recarregamento a quente (atualiza continuamente sua configuração sem reinicializações), HTTPS usando certificados Let’s Encrypt (suporte a certificado wildcard) e expõe uma API REST. Ele também mantém logs de acesso e fornece métricas (Rest, Prometheus, Datadog, Statsd, InfluxDB).

Além disso, o Træfɪk vem com uma interface de usuário web baseada em HTML simples usada para monitorar eventos. Ele também suporta disjuntores de circuito, retry de solicitações, limitação de taxa e autenticação básica.

5. Apache Traffic Server – (Servidor Proxy Reverso e Encaminhador)

Anteriormente um produto comercial de propriedade do Yahoo que mais tarde foi transferido para a Fundação Apache, o Apache Traffic Server é um servidor de cache reverso e encaminhador gratuito, de código aberto e rápido.

O Servidor de Tráfego também funciona como um balanceador de carga e pode participar de hierarquias de cache flexíveis. É conhecido por ter lidado com mais de 400 TB de tráfego por dia no Yahoo.

Ele apresenta um conjunto de funcionalidades de keep-alive, filtragem ou anonimização de solicitações de conteúdo, e é extensível por meio de uma API que permite aos usuários criar plugins personalizados para modificar cabeçalhos HTTP, lidar com solicitações ESI ou projetar novos algoritmos de cache.

6. Squid – (Servidor Proxy HTTP de Cache e Encaminhamento)

O Squid é um servidor proxy e daemon de cache da Web gratuito, de código aberto e bem conhecido que suporta vários protocolos como HTTP, HTTPS, FTP e muito mais. Ele apresenta um modo de proxy reverso (acelerador httpd) que armazena em cache solicitações de entrada para dados de saída.

Ele suporta opções ricas de otimização de tráfego, controle de acesso, autorização, facilidades de registro e muito mais.

7. Pound – (Proxy Reverso e Balanceador de Carga)

A Pound is another free and open-source, lightweight reverse proxy and load balancer and front-end for web servers. It is also an SSL terminator (that decrypts HTTPS requests from clients and sends them as plain HTTP to the back-end servers).

Um sanitizador de HTTP/HTTPS (que verifica solicitações para correção e aceita apenas aquelas bem formadas), e um servidor de fail-over.

8. Apache – (Servidor Web HTTP)

Servidor Apache HTTP (também conhecido como HTTPD), o servidor web mais popular do mundo, também pode ser implantado e configurado para atuar como um proxy reverso.

O Apache se destaca no roteamento de solicitações de clientes para servidores backend, aprimorando a segurança, balanceamento de carga e otimização do desempenho de aplicativos web. Ao atuar como intermediário, o Apache pode distribuir eficientemente o tráfego de entrada para várias instâncias de servidor, garantindo alta disponibilidade e experiências de usuário contínuas.Suas opções de configuração robustas e personalizáveis o tornam uma escolha principal para organizações em busca de uma solução confiável para necessidades de proxy reverso, seja para cache de conteúdo ou entrega de aplicativos.

Suas opções de configuração robustas e personalizáveis a tornam uma escolha superior para organizações em busca de uma solução confiável para necessidades de proxy reverso, seja para cache de conteúdo ou entrega de aplicativos.

9. Skipper – (HTTP Router e Proxy Reverso)

Skipper é um roteador HTTP e proxy reverso de código aberto e gratuito para composição de serviços, incluindo casos de uso como Ingress do Kubernetes.

É construído para gerenciar um número substancial de definições de rotas HTTP dinamicamente configuradas, superando 800.000 rotas, apresentando condições de pesquisa complexas e oferecendo flexibilidade para aprimorar o fluxo de solicitações com filtros.

Pode ser facilmente implantado como está ou pode ser estendido incorporando lógica de pesquisa personalizada, lógica de filtro e fontes de configuração.

10 Caddy 2 – Servidor Rápido com HTTPS Automático

Caddy 2 é um servidor web e proxy reverso de código aberto conhecido por sua simplicidade e versatilidade, que oferece uma interface amigável e HTTPS automático por padrão, tornando-o uma escolha acessível para iniciantes e usuários experientes.

Caddy 2 foi projetado para lidar facilmente com hospedagem web, HTTP/2, balanceamento de carga e proxy, melhorando o desempenho e a segurança do site. Sua natureza de código aberto incentiva contribuições da comunidade, e ganhou popularidade por sua facilidade de uso e recursos modernos no mundo da hospedagem web e gerenciamento de servidores.

Conclusão

É tudo o que tínhamos para você neste guia. Para mais informações sobre cada ferramenta nesta lista, confira seus respectivos sites. Não se esqueça de compartilhar seus pensamentos conosco através do formulário de feedback abaixo.

Source:
https://www.tecmint.com/open-source-reverse-proxy-servers-for-linux/