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