Por que usar um proxy reverso?
Antes de discutir as etapas para configurar o HAProxy como proxy reverso, vamos destacar rapidamente por que um proxy reverso funciona a seu favor. A seguir estão os benefícios que você obtém ao usar o HAProxy como proxy reverso:
- Balanceamento de carga - Seu servidor web pode, em determinado momento, ter muitas solicitações de clientes que, se não forem bem tratadas, podem sobrecarregá-lo, causando um tempo de inatividade inesperado. No entanto, configurar um proxy reverso garante que o tráfego seja distribuído pelos servidores back-end para garantir que nenhum servidor fique sobrecarregado com solicitações.
- Firewall e segurança – O proxy reverso conecta os dispositivos clientes ao servidor web. Isso reduz o risco de exposição direta de nossos servidores back-end à Internet. Dessa forma, um tráfego malicioso pode ser facilmente filtrado e bloqueado antes que danifique os servidores.
- Melhor cache – Com um proxy reverso, você notará uma melhoria geral no desempenho, pois o tempo de carregamento será reduzido pelo armazenamento em cache do conteúdo estático. Além disso, você obterá uma melhor experiência do usuário.
- Rescisão SSL/TLS – Com um proxy reverso, criptografar e descriptografar as conexões SSL/TLS torna-se perfeito e seus servidores back-end não terão que arcar com essa tarefa, reduzindo sua carga.
Como configurar o HAProxy como proxy reverso
Tendo explicado por que um proxy reverso como o HAProxy é essencial, vamos fornecer as etapas de configuração a seguir.
Etapa 1: instalar o HAProxy
Você provavelmente já possui o HAProxy instalado em seu sistema. Se sim, pule esta etapa. No entanto, para alguém novo nisso, execute o seguinte comando para instalar o HAProxy:
$ sudo apto instalar haproxy
Já o temos instalado em nosso caso.
Etapa 2: edite o arquivo de configuração HAProxy
HAProxy possui um arquivo de configuração que você deve acessar e editar para configurar como seu proxy reverso. Comece abrindo o arquivo de configuração usando um editor de texto.
$ sudo nano /etc/haproxy/haproxy.cfgDepois de aberto, observe que ele possui configurações básicas para as seções padrão e globais. Devemos então criar mais duas seções: frontend e backend. O frontend define as interfaces que devem receber as solicitações dos clientes, enquanto o backend especifica os servidores que irão tratar o tráfego.
Para este exemplo, configuramos o frontend para aceitar as solicitações do cliente das portas 80 e 81. Em seguida, criamos uma regra para distribuir o tráfego de forma que as conexões da porta 80 sejam roteadas para um servidor específico enquanto as da porta 81 vão para um servidor diferente. servidor. Nossa seção de frontend é mostrada a seguir:
Como criamos dois servidores backend, backend2 e linux_backend, devemos criar as seções backend para ambos os servidores. Especificamos qual IP distribuir o tráfego para nosso “servidor1” e “servidor2” para cada um.
Depois que o arquivo de configuração for editado, salve-o e saia do arquivo. Observe que existem várias maneiras de configurar o HAProxy dependendo de suas necessidades. No nosso caso, criamos os servidores web usando o endereço IP especificado para rotear nosso tráfego. Altere os IPs para corresponder aos dos seus servidores web e à porta que você deseja escutar.
Etapa 3: verifique a validade
Com o HAProxy, existe um comando que permite verificar se o seu arquivo de configuração é válido. Execute o seguinte comando e veja qual saída você obtém:
$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg
Se você obtiver uma saída semelhante, ela confirmará que seu arquivo de configuração é válido. Caso contrário, gerará erros.
Etapa 4: teste o proxy reverso
Usando um comando como “curl”, você pode enviar tráfego para o seu servidor web e ver como ele responde. Para o nosso caso, usamos Python3 para criar os servidores web.
A execução do comando “curl” confirma que nosso servidor web está escutando a porta especificada e que o HAProxy distribuiu o tráfego para o servidor especificado com base em nosso arquivo de configuração.
Você também pode acessar seu servidor web em um navegador e confirmar se o proxy reverso funciona.
Como temos dois servidores web que podem ser usados dependendo da porta usada pelos dispositivos clientes, vamos vincular um servidor web diferente a uma porta diferente e ver o que acontece.
A saída a seguir mostra que o HAProxy enviou nosso tráfego para o segundo servidor backend após detectar que a solicitação do cliente foi enviada pela porta 81, confirmando que a distribuição do tráfego está funcionando conforme o esperado.
É assim que se configura o HAProxy como proxy reverso.
Conclusão
HAProxy é uma excelente escolha de proxy reverso para seu servidor web. Configurá-lo é simples. Especifique apenas qual porta atender às solicitações do cliente e quais regras usar para o balanceamento de carga. Em seguida, adicione os servidores back-end a serem usados e você terá seu proxy reverso instalado e funcionando. Esta postagem compartilhou as etapas a seguir e demonstrou um exemplo para garantir que você se sinta confortável com o HAProxy.