Como configurar o HAProxy para conexões WebSocket

Como Configurar O Haproxy Para Conexoes Websocket



Os aplicativos WebSocket possuem comunicação bidirecional e em tempo real entre o cliente e o servidor. Mesmo com conexões WebSocket, você ainda precisa de uma forma de distribuir o tráfego para evitar sobrecarregar um servidor, o que levaria a tempo de inatividade e indisponibilidade.

HAProxy é um exemplo de balanceador de carga gratuito e confiável que também funciona como proxy reverso. Você pode configurar o HAProxy para conexões WebSocket para utilizar melhor os recursos do WebSockets, especialmente na transferência de dados em tempo real, enquanto minimiza a carga do servidor usando o HAProxy. Esta postagem apresenta todas as etapas necessárias para configurar o HAProxy para conexões WebSocket.

Guia passo a passo sobre como configurar o HAProxy para conexões WebSocket

Com conexões WebSocket, a comunicação entre servidor e cliente é duradoura. Ele persiste até que o servidor ou cliente decida fechá-lo. Dessa forma, ter uma forma de trabalhar com um balanceador de carga garante que o tráfego possa ser distribuído para outro servidor se o servidor estiver sobrecarregado. Dessa forma, o cliente e o servidor podem desfrutar de uma conexão ininterrupta e duradoura com baixa latência.







1. Instale o HAProxy

A primeira etapa para configurar o HAProxy para conexões WebSocket é garantir que você tenha o HAProxy instalado. Se você já o tiver instalado, pule esta etapa. Caso contrário, execute o seguinte comando para instalá-lo:



$ sudo apt-get instalar haproxy



2. Edite a configuração do HAProxy

Para configurar o HAProxy para conexões WebSocket, devemos editar a configuração do HAProxy para suportar as conexões WebSocket. Devemos modificar a seção “Padrões” e criar as seções “Frontend” e “Backend”.





Abra a configuração do HAProxy usando um editor de texto da seguinte maneira:

$ sudo nano / etc. / haproxy / haproxy.cfg

Na seção “Padrões”, modifique-o conforme apresentado na imagem a seguir. Primeiro, especificamos que estamos trabalhando com conexões HTTP e definimos para onde enviar os arquivos de log. A seguir, definimos os tempos limite para diferentes atividades. Por exemplo, o tempo limite de conexão é o tempo máximo que uma tentativa de conexão com o servidor deve levar. Se o tempo máximo for atingido, conclui-se que a conexão falhou e pode ser tentada novamente.



Para este caso, definimos o tempo limite de conexão para 5.000 milissegundos. Você pode ajustar o tempo limite de acordo com a melhor forma de vê-los para o seu caso. Ajuste-os com base em seu aplicativo e lembre-se da duração das sessões WebSocket e da duração que você espera que elas durem.

A seguir, devemos criar a seção “Frontend” onde vinculamos quais portas usar para as conexões WebSocket e qual servidor backend referenciar. Para este caso, especificamos a porta 80 e fornecemos a URL de acesso à página “Estatísticas” para monitorar nosso HAProxy. Por último, definimos qual seção de backend referenciar no balanceamento de carga.

Na seção “Backend”, distribuímos a carga em round robin. A “opção de encaminhamento para” especifica que o HAProxy inclui um cabeçalho “X-Forward-For” que contém o endereço IP do cliente ao enviar a solicitação de conexão. Dessa forma, o servidor backend obterá o IP do cliente correto.

A “opção http-server-close” restringe os recursos, eliminando que quaisquer conexões ociosas ocupem os recursos do servidor. Embora as conexões WebSocket sejam de longa duração, devemos verificar se há conexões inativas de longa duração e fechá-las para evitar desperdício desnecessário de recursos.

Por último, adicione os servidores backend que você usará para distribuir o tráfego. Certifique-se de fornecer o endereço IP correto para os servidores e substitua os da imagem a seguir:

Seu HAProxy agora está configurado para conexões WebSocket. Salve as alterações e feche o arquivo.

3. Teste de validade

Antes de reiniciarmos o HAProxy, podemos executar um comando rápido para verificar se o arquivo é válido e não apresenta erros. Para isso, execute o seguinte comando:

$ sudo haproxy -c -f / etc. / haproxy / haproxy.cfg

4. Reinicie e teste a conexão WebSocket

Assim que o arquivo for válido, reinicie o serviço HAProxy.

É isso. Você configurou o HAProxy para conexões WebSocket. Você pode testar a conexão para garantir que todo o tráfego do WebSocket seja encaminhado corretamente.

Conclusão

Configurar o HAProxy para conexões WebSocket é uma solução procurada, especialmente por administradores web. Este post elaborou detalhadamente o processo, dando os passos e um exemplo para garantir que você acompanhe confortavelmente e consiga implementar o mesmo no seu caso. Passe por cada etapa e certifique-se de compreender o conceito e o processo para implementá-lo.