Hoe u HAProxy configureert voor WebSocket-verbindingen

Hoe U Haproxy Configureert Voor Websocket Verbindingen



WebSocket-applicaties beschikken over realtime en bidirectionele communicatie tussen de client en de server. Zelfs met WebSocket-verbindingen hebt u nog steeds een manier nodig om het verkeer te verdelen om overbelasting van een server te voorkomen, wat zou leiden tot downtime en onbeschikbaarheid.

HAProxy is een voorbeeld van een gratis en betrouwbare load balancer die ook als reverse proxy werkt. U kunt HAProxy configureren voor WebSocket-verbindingen om de functies van WebSockets beter te benutten, vooral bij realtime gegevensoverdracht, terwijl de serverbelasting wordt geminimaliseerd met behulp van HAProxy. Dit bericht presenteert alle vereiste stappen om HAProxy voor WebSocket-verbindingen te configureren.

Stapsgewijze handleiding voor het configureren van HAProxy voor WebSocket-verbindingen

Met WebSocket-verbindingen heeft de server- en clientcommunicatie een lange levensduur. Het blijft bestaan ​​totdat de server of client besluit het te sluiten. Als zodanig zorgt het werken met een load balancer ervoor dat het verkeer naar een andere server kan worden gedistribueerd als de server overbelast is. Op die manier kunnen de client en server genieten van een ononderbroken en langdurige verbinding met een lage latentie.







1. Installeer HAProxy

De eerste stap bij het configureren van HAProxy voor WebSocket-verbindingen is ervoor zorgen dat HAProxy is geïnstalleerd. Als u het al hebt geïnstalleerd, slaat u deze stap over. Voer anders de volgende opdracht uit om het te installeren:



$ sudo apt-get-installatie haproxy



2. Bewerk de HAProxy-configuratie

Om HAProxy voor WebSocket-verbindingen te configureren, moeten we de HAProxy-configuratie bewerken om de WebSocket-verbindingen te ondersteunen. We moeten de sectie 'Standaardinstellingen' aanpassen en de secties 'Frontend' en 'Backend' maken.





Open de HAProxy-configuratie als volgt met een teksteditor:

$ sudo nano / enz / haproxy / haproxy.cfg

Wijzig dit in het gedeelte 'Standaardinstellingen' zoals weergegeven in de volgende afbeelding. Eerst specificeren we dat we met HTTP-verbindingen werken en definiëren we waar de logbestanden naartoe moeten worden gestuurd. Vervolgens stellen we de time-outs in voor verschillende activiteiten. De time-out voor verbinding is bijvoorbeeld de maximale tijd die een verbindingspoging met de server mag duren. Als de maximale tijd is bereikt, wordt de verbinding als mislukt beschouwd en kan opnieuw worden geprobeerd.



Voor dit geval stellen we de time-outverbinding in op 5000 milliseconden. U kunt de time-out aanpassen aan de manier waarop u deze het beste voor uw geval ziet. Pas ze aan op basis van uw toepassing en onthoud de duur van de WebSocket-sessies en hoe lang u ze verwacht.

Vervolgens moeten we de sectie 'Frontend' maken waarin we bepalen welke poorten we moeten gebruiken voor de WebSocket-verbindingen en naar welke backend-server we moeten verwijzen. Voor dit geval specificeren we poort 80 en geven we de URL op voor toegang tot de pagina “Statistieken” om onze HAProxy te controleren. Ten slotte definiëren we naar welke backendsectie moet worden verwezen bij taakverdeling.

In het gedeelte “Backend” verdelen we de belasting met behulp van round robin. De “optie forward for” specificeert dat HAProxy een “X-Forward-For” header moet opnemen die het IP-adres van de client bevat bij het verzenden van het verbindingsverzoek. Op die manier krijgt de backend-server het juiste client-IP.

De “optie http-server-close” beperkt de bronnen door te voorkomen dat inactieve verbindingen de serverbronnen in beslag nemen. Hoewel de WebSocket-verbindingen een lange levensduur hebben, moeten we controleren op inactieve verbindingen met een lange levensduur en deze sluiten om onnodige verspilling van bronnen te voorkomen.

Voeg ten slotte de backend-servers toe die u gaat gebruiken om het verkeer te distribueren. Zorg ervoor dat u het juiste IP-adres voor de servers opgeeft en vervang de adresgegevens in de volgende afbeelding:

Uw HAProxy is nu geconfigureerd voor WebSocket-verbindingen. Sla de wijzigingen op en sluit het bestand.

3. Test op geldigheid

Voordat we HAProxy opnieuw opstarten, kunnen we een snelle opdracht uitvoeren om te controleren of het bestand geldig is en geen fouten bevat. Voer daarvoor de volgende opdracht uit:

$ sudo haproxy -C -F / enz / haproxy / haproxy.cfg

4. Start de WebSocket-verbinding opnieuw op en test deze

Zodra het bestand geldig is, start u de HAProxy-service opnieuw.

Dat is het. U hebt HAProxy geconfigureerd voor WebSocket-verbindingen. U kunt de verbinding testen om er zeker van te zijn dat al het WebSocket-verkeer correct wordt doorgestuurd.

Conclusie

Het configureren van HAProxy voor WebSocket-verbindingen is een gewilde oplossing, vooral onder webbeheerders. In dit bericht werd het proces gedetailleerd uitgewerkt, met de stappen en een voorbeeld om ervoor te zorgen dat u het gemakkelijk kunt volgen en erin slaagt hetzelfde in uw geval te implementeren. Doorloop elke stap en zorg ervoor dat u het concept en het proces om het te implementeren begrijpt.