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 encaminha 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 se originou do próprio servidor de proxy reverso.
Geralmente, um servidor de proxy reverso é um proxy voltado para o interior 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 aprimorar sua segurança. Na infraestrutura de TI, um proxy reverso também pode funcionar como um firewall de aplicativos, balanceador de carga, terminador de TLS, acelerador da web (por meio de armazenamento em cache de conteúdo estático e dinâmico) e muito mais.
Neste artigo, vamos analisar os 10 principais servidores de proxy reverso de código aberto que você pode usar em um sistema Linux.
Índice
1. HAProxy – (Balanceador de Carga TCP/HTTP)
HAProxy (HAProxy, que significa Proxy de Alta Disponibilidade), é um software de balanceamento de carga e proxying gratuito, de código aberto, muito rápido, confiável e de primeira linha para aplicações baseadas em TCP e HTTP, construído para alta disponibilidade.
HAProxy é um proxy reverso HTTP, um proxy TCP e normalizador, um terminador/iniciador/descarregador de SSL/TLS, um proxy de cache, um descarregador de compressão HTTP, um regulador de tráfego, um interruptor baseado em conteúdo, uma porta de entrada FastCGI e muito mais. Também é uma proteção contra DDoS e abuso de serviço.
É alimentado por um mecanismo baseado em eventos, não bloqueante, que combina uma camada de E/S muito rápida com um agendador multi-threaded baseado em prioridade, o que permite lidar facilmente com dezenas de milhares de conexões simultâneas.
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 um aplicativo 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 (manter 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)
O NGINX é um servidor HTTP e proxy reverso gratuito, de código aberto, de alto desempenho e muito popular. Ele também funciona como um servidor proxy IMAP/POP3. O NGINX é conhecido por seu alto desempenho, estabilidade, conjunto de recursos rico, configuração simples e flexível e baixo consumo de recursos (particularmente baixa pegada de memória).
Assim como o HAProxy, o NGINX possui uma arquitetura orientada a eventos, portanto, não tem problemas 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 ressaltar que 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 de 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)
Cache HTTP Varnish (ou Cache Varnish ou simplesmente Varnish) é um software de cache reverso de proxy gratuito, de código aberto, de alto desempenho e muito popular, mais conhecido como um acelerador de aplicativos da web, projetado para melhorar o desempenho do HTTP usando cache no 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, para que na próxima vez que o cliente solicitar as mesmas informações, o Varnish as sirva 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 utiliza uma linguagem de configuração flexível conhecida como Linguagem de Configuração do Varnish (VCL), que, entre outras coisas, permite aos administradores de 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 próprios módulos 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 HTTPS é implantar um terminador ou descarregador de SSL/TLS como HAProxy ou NGINX na frente dele.
4. Træfɪk – (O Proxy de Aplicação Nativo na 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 implantação de micro-serviços que suporta múltiplos algoritmos de balanceamento de carga.
Ele pode interagir 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 Zookeper.
Sua característica 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 descobrindo qual serviço atende a qual solicitação do mundo externo. Os provedores informam ao Træfɪk onde suas aplicações ou micro-serviços estão localizados.
Outras características do Træfɪk são suporte para WebSockets, HTTP/2 e GRPC, recarga dinâmica (atualiza continuamente sua configuração sem reinicializações), HTTPS usando certificados Let’s Encrypt (suporte para certificados 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 simples baseada em HTML usada para acompanhar eventos. Ele também suporta disjuntores de circuito, repetição de solicitações, limitação de taxa e autenticação básica.
5. Apache Traffic Server – (Servidor de Proxy Reverso e Encaminhador)
Anteriormente um produto comercial de propriedade do Yahoo, que posteriormente foi transferido para a Fundação Apache, o Apache Traffic Server é um servidor de proxy reverso e encaminhador de cache rápido, gratuito e de código aberto.
O Servidor de Tráfego também funciona como um balanceador de carga e pode participar de hierarquias de cache flexíveis. É conhecido por lidar com mais de 400 TB de tráfego por dia no Yahoo.
Ele possui um conjunto de recursos de manutenção de conexão ativa, 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 – (Proxy de Cache e Encaminhamento HTTP)
O Squid é um servidor de 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 outros. Ele possui um modo de proxy reverso (acelerador httpd) que armazena em cache solicitações recebidas para dados de saída.
Ele oferece 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 HTTP/HTTPS (que verifica solicitações para corretude 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, melhorando a segurança, balanceamento de carga e otimização de desempenho de aplicativos web. Ao atuar como intermediário, o Apache pode distribuir eficientemente o tráfego recebido para várias instâncias de servidor, garantindo alta disponibilidade e experiências de usuário sem interrupções.
Suas opções de configuração robustas e personalizáveis a tornam uma escolha superior para organizações que buscam 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.
Ele é construído para gerenciar um número substancial de definições de rotas HTTP configuradas dinamicamente, superando 800.000 rotas, com condições de pesquisa complexas e oferecendo flexibilidade para aprimorar o fluxo de solicitações com filtros.
Ele pode ser facilmente implantado como está ou pode ser estendido incorporando lógica personalizada de pesquisa, 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 tanto para novos usuários quanto para usuários experientes.
O Caddy 2 foi projetado para lidar facilmente com hospedagem na 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 na web e gerenciamento de servidores.
Conclusão
Isso é tudo que tínhamos para você neste guia. Para obter mais informações sobre cada ferramenta desta 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/