Como configurar o HAProxy como proxy reverso

Como Configurar O Haproxy Como Proxy Reverso



Quando você tem um servidor web, ter uma forma de encaminhar as solicitações do cliente e a resposta do servidor ajuda na distribuição do tráfego e aumenta a segurança. Um proxy reverso, como o HAProxy, atua como intermediário entre seu aplicativo Web e os dispositivos cliente quando configurado. Dessa forma, ele recebe as solicitações do cliente e as encaminha para o servidor web apropriado enquanto recebe a resposta do servidor e as transmite aos clientes. Configurar o HAProxy no lado do servidor para atuar como proxy reverso é um processo simples. Esta postagem detalhou as etapas que você deve seguir.

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.cfg

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