Comment configurer HAProxy pour les connexions WebSocket

王林
Libérer: 2024-03-20 15:51:22
avant
584 Les gens l'ont consulté

L'application WebSocket permet une communication bidirectionnelle en temps réel entre le client et le serveur. Même si des connexions WebSocket sont utilisées, des mécanismes efficaces de gestion du trafic sont toujours nécessaires pour éviter une surcharge du serveur, entraînant une interruption et une indisponibilité du service.

HAProxy est un équilibreur de charge gratuit et fiable qui fonctionne également comme proxy inverse. En configurant HAProxy pour prendre en charge les connexions WebSocket, vous pouvez mieux utiliser les caractéristiques de transmission de données en temps réel des WebSockets et réduire la charge du serveur. Cet article fournira des étapes détaillées pour configurer HAProxy pour prendre en charge les connexions WebSocket.

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

Grâce à une connexion WebSocket, la communication entre le serveur et le client est persistante jusqu'à ce que l'une des parties ferme activement la connexion. Pour garantir que le trafic peut être réparti uniformément sur les autres serveurs lorsque la charge du serveur est trop élevée, un équilibreur de charge peut être utilisé. De cette manière, le client et le serveur peuvent maintenir une connexion continue et profiter d'un environnement de communication à faible latence.

1. Installez HAProxy

La première étape de la configuration de HAProxy pour une connexion WebSocket consiste à confirmer que HAProxy est installé. Si vous ne l'avez pas encore installé, suivez ces étapes pour l'installer :

$sudo apt—installez haproxy

Comment configurer HAProxy pour les connexions WebSocket

2. Modifier la configuration HAProxy

Pour que les connexions WebSocket passent par HAProxy, la configuration HAProxy doit être ajustée pour prendre en charge les connexions WebSocket. Cela inclut la modification de la section « serveur » et la configuration des sections « frontend » et « backend ».

Ouvrez la configuration HAProxy à l'aide d'un éditeur de texte comme indiqué ci-dessous :

$sudo nano/etc/haproxy/haproxy.cfg

Dans la section « Supprimer », modifiez-le comme indiqué dans l'image ci-dessous. Tout d’abord, nous précisons que nous utilisons une connexion HTTP et définissons où envoyer les fichiers journaux. Ensuite, nous définissons des délais d'attente pour différentes activités. Par exemple, un délai d'expiration de connexion correspond au temps maximum nécessaire pour se connecter à un serveur. Si le temps maximum est atteint, la connexion est considérée comme ayant échoué et peut être réessayée.

Pour ce cas, nous définissons le délai d'expiration de la connexion à 5 000 millisecondes. Vous pouvez ajuster le délai d'attente en fonction de votre situation. Adaptez-les à votre application, en gardant à l'esprit la durée des sessions WebSocket et leur durée de vie prévue.

Comment configurer HAProxy pour les connexions WebSocket

Ensuite, nous devons créer la partie "frontend", où nous lions le port utilisé pour la connexion WebSocket et le serveur backend référencé. Dans ce cas, nous spécifions le port 80 et donnons l'URL pour accéder à la page « Stats » pour surveiller notre HAProxy. Enfin, nous définissons les parties backend qui sont référencées dans l'équilibrage de charge.

Comment configurer HAProxy pour les connexions WebSocket

Dans la partie "Backend", nous utilisons la planification round-robin pour répartir la charge. "option forward for" spécifie que HAProxy inclut un en-tête "X-Forward-For" lors de l'envoi d'une demande de connexion, qui contient l'adresse IP du client. De cette façon, le serveur backend obtiendra la bonne adresse IP client.

"L'option http_server_close" limite les ressources en éliminant toutes les connexions inactives occupant les ressources du serveur. Bien que les connexions WebSocket durent longtemps, nous devons vérifier s'il existe des connexions inactives de longue durée et les fermer pour éviter un gaspillage inutile de ressources.

Enfin, ajoutez les serveurs backend qui serviront à répartir le trafic. Assurez-vous de donner à votre serveur la bonne adresse IP et remplacez l'adresse IP dans l'image ci-dessous :

Comment configurer HAProxy pour les connexions WebSocket

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 que le fichier est valide et ne contient aucune erreur. Pour ce faire, exécutez la commande suivante :

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

Comment configurer HAProxy pour les connexions WebSocket

4. Redémarrez et testez la connexion WebSocket

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

Comment configurer HAProxy pour les connexions WebSocket

C'est tout. 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 populaire, notamment parmi les administrateurs Web. Cet article explique le processus en détail, en donnant les étapes et un exemple pour vous assurer que vous êtes à l'aise pour suivre et gérer la mise en œuvre du même processus dans votre cas. Parcourez chaque étape pour vous assurer que vous comprenez le concept et le processus de mise en œuvre.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:mryunwei.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal