Comment configurer HAProxy pour les connexions WebSocket

Comment Configurer Haproxy Pour Les Connexions Websocket



Les applications WebSocket disposent d'une communication en temps réel et bidirectionnelle entre le client et le serveur. Même avec des connexions WebSocket, vous avez toujours besoin d'un moyen de répartir le trafic pour éviter de surcharger un serveur, ce qui entraînerait des temps d'arrêt et une indisponibilité.

HAProxy est un exemple d'équilibreur de charge gratuit et fiable qui fonctionne également comme proxy inverse. Vous pouvez configurer HAProxy pour les connexions WebSocket afin de mieux utiliser les fonctionnalités de WebSockets, en particulier sur le transfert de données en temps réel, tout en minimisant la charge du serveur à l'aide de HAProxy. Cet article présente toutes les étapes requises pour configurer HAProxy pour les connexions WebSocket.

Guide étape par étape sur la configuration de HAProxy pour les connexions WebSocket

Avec les connexions WebSocket, la communication serveur et client est durable. Il persiste jusqu'à ce que le serveur ou le client décide de le fermer. En tant que tel, disposer d'un moyen de travailler avec un équilibreur de charge garantit que le trafic peut être distribué vers un autre serveur si le serveur est surchargé. De cette façon, le client et le serveur peuvent bénéficier d’une connexion ininterrompue et durable avec une faible latence.







1. Installez HAProxy

La première étape pour configurer HAProxy pour les connexions WebSocket consiste à vous assurer que HAProxy est installé. Si vous l'avez déjà installé, ignorez cette étape. Sinon, exécutez la commande suivante pour l'installer :



$ sudo apt-get installer haproxy



2. Modifiez la configuration HAProxy

Pour configurer HAProxy pour les connexions WebSocket, nous devons modifier la configuration HAProxy pour prendre en charge les connexions WebSocket. Il faut modifier la section « Defaults » et créer les sections « Frontend » et « Backend ».





Ouvrez la configuration HAProxy à l'aide d'un éditeur de texte comme suit :

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

Dans la section « Valeurs par défaut », modifiez-le comme présenté dans l'image suivante. Tout d’abord, nous précisons que nous travaillons avec des connexions HTTP et définissons où envoyer les fichiers journaux. Ensuite, nous définissons les délais d'attente pour différentes activités. Par exemple, le délai d'attente de connexion est la durée maximale qu'une tentative de connexion au serveur doit prendre. Si le temps maximum est atteint, la connexion est considérée comme ayant échoué et peut être réessayée.



Dans ce cas, nous définissons le délai de connexion à 5 000 millisecondes. Vous pouvez ajuster le délai d'attente en fonction de la manière dont vous les voyez le mieux pour votre cas. Ajustez-les en fonction de votre application et rappelez-vous la durée des sessions WebSocket et leur durée de vie attendue.

Ensuite, nous devons créer la section « Frontend » où nous lions les ports à utiliser pour les connexions WebSocket et le serveur backend à référencer. Pour ce cas, nous précisons le port 80 et donnons l'URL pour accéder à la page « Stats » pour surveiller notre HAProxy. Enfin, nous définissons la section backend à référencer dans l'équilibrage de charge.

Dans la section « Backend », nous répartissons la charge en utilisant le round robin. L'« option forward for » spécifie à HAProxy d'inclure un en-tête « X-Forward-For » qui contient l'adresse IP du client lors de l'envoi de la demande de connexion. De cette façon, le serveur backend obtiendra la bonne adresse IP client.

L'option « http-server-close » restreint les ressources en éliminant toutes les connexions inactives qui occupent les ressources du serveur. Bien que les connexions WebSocket durent longtemps, nous devons rechercher les connexions inactives de longue durée et les fermer pour éviter un gaspillage inutile de ressources.

Enfin, ajoutez les serveurs backend que vous utiliserez pour distribuer le trafic. Assurez-vous de donner l'adresse IP correcte pour les serveurs et remplacez celles de l'image suivante :

Votre HAProxy est maintenant configuré pour les connexions WebSocket. Enregistrez les modifications et fermez le fichier.

3. Test de validité

Avant de redémarrer HAProxy, nous pouvons exécuter une commande rapide pour vérifier si le fichier est valide et ne contient aucune erreur. Pour cela, exécutez la commande suivante :

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

4. Redémarrez et testez la connexion WebSocket

Une fois le fichier valide, redémarrez le service HAProxy.

C'est ça. Vous avez configuré HAProxy pour les connexions WebSocket. Vous pouvez tester la connexion pour vous assurer que tout le trafic WebSocket est correctement transféré.

Conclusion

La configuration de HAProxy pour les connexions WebSocket est une solution recherchée, notamment par les administrateurs Web. Cet article a élaboré le processus en détail, donnant les étapes et un exemple pour vous assurer que vous suivez confortablement et parvenez à mettre en œuvre la même chose dans votre cas. Parcourez chaque étape et assurez-vous de comprendre le concept et le processus de mise en œuvre.