Sådan konfigureres HAProxy til WebSocket-forbindelser

Sadan Konfigureres Haproxy Til Websocket Forbindelser



WebSocket-applikationer har realtids- og tovejskommunikation mellem klienten og serveren. Selv med WebSocket-forbindelser har du stadig brug for en måde at distribuere trafikken på for at undgå at overbelaste en server, hvilket ville føre til nedetid og utilgængelighed.

HAProxy er et eksempel på en gratis og pålidelig load balancer, der også fungerer som en omvendt proxy. Du kan konfigurere HAProxy for WebSocket-forbindelser til bedre at udnytte WebSockets' funktioner, især ved dataoverførsel i realtid, mens du minimerer serverbelastningen ved hjælp af HAProxy. Dette indlæg præsenterer alle de nødvendige trin for at konfigurere HAProxy til WebSocket-forbindelser.

Trin-for-trin guide til, hvordan du konfigurerer HAProxy til WebSocket-forbindelser

Med WebSocket-forbindelser er server- og klientkommunikationen langvarig. Det fortsætter, indtil serveren eller klienten beslutter at lukke den. Som sådan sikrer en måde at arbejde med en load balancer på, at trafikken kan distribueres til en anden server, hvis serveren er overbelastet. På den måde kan klienten og serveren nyde en uafbrudt og langvarig forbindelse med lav latenstid.







1. Installer HAProxy

Det første trin til at konfigurere HAProxy til WebSocket-forbindelser er at sikre, at du har HAProxy installeret. Hvis du allerede har det installeret, skal du springe dette trin over. Ellers skal du køre følgende kommando for at installere det:



$ sudo apt-get install haproxy



2. Rediger HAProxy-konfigurationen

For at konfigurere HAProxy til WebSocket-forbindelser skal vi redigere HAProxy-konfigurationen for at understøtte WebSocket-forbindelserne. Vi skal ændre sektionen 'Standarder' og oprette sektionerne 'Frontend' og 'Backend'.





Åbn HAProxy-konfigurationen ved hjælp af en teksteditor som følger:

$ sudo nano / etc / haproxy / haproxy.cfg

I afsnittet 'Standarder' skal du ændre det som vist i det følgende billede. Først specificerer vi, at vi arbejder med HTTP-forbindelser og definerer, hvor logfilerne skal sendes. Dernæst sætter vi timeouts for forskellige aktiviteter. For eksempel er timeout-forbindelsen den maksimale tid, et forbindelsesforsøg til serveren bør tage. Hvis den maksimale tid nås, konkluderes forbindelsen som mislykket og kan prøves igen.



I dette tilfælde indstiller vi timeout-forbindelsen til 5000 millisekunder. Du kan justere timeoutet efter, hvordan du ser dem bedst for din sag. Juster dem baseret på din applikation, og husk WebSocket-sessionernes varighed og hvor lang levetid du forventer, at de skal være.

Dernæst skal vi oprette afsnittet 'Frontend', hvor vi binder, hvilke porte der skal bruges til WebSocket-forbindelserne, og hvilken backend-server der skal refereres til. I dette tilfælde angiver vi port 80 og giver URL'en for at få adgang til siden 'Stats' for at overvåge vores HAProxy. Til sidst definerer vi, hvilken backend-sektion der skal refereres til i belastningsbalancering.

I afsnittet 'Backend' fordeler vi belastningen ved hjælp af round robin. 'Option forward for' angiver, at HAProxy skal inkludere en 'X-Forward-For'-header, der indeholder klientens IP-adresse, når forbindelsesanmodningen sendes. På den måde får backend-serveren den korrekte klient-IP.

'Optionen http-server-close' begrænser ressourcerne ved at eliminere eventuelle inaktive forbindelser fra at optage serverressourcerne. Selvom WebSocket-forbindelserne er langlivede, skal vi tjekke for inaktive langlivede forbindelser og lukke dem for at undgå unødvendigt ressourcespild.

Til sidst skal du tilføje de backend-servere, som du vil bruge til at distribuere trafikken. Sørg for, at du angiver den korrekte IP-adresse til serverne, og udskift dem på følgende billede:

Din HAProxy er nu konfigureret til WebSocket-forbindelser. Gem ændringerne og luk filen.

3. Test for gyldighed

Før vi genstarter HAProxy, kan vi køre en hurtig kommando for at kontrollere, om filen er gyldig og ikke har nogen fejl. For det skal du køre følgende kommando:

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

4. Genstart og test WebSocket-forbindelsen

Når filen er gyldig, skal du genstarte HAProxy-tjenesten.

Det er det. Du konfigurerede HAProxy til WebSocket-forbindelser. Du kan teste forbindelsen for at sikre, at al WebSocket-trafik videresendes korrekt.

Konklusion

Konfiguration af HAProxy til WebSocket-forbindelser er en efterspurgt løsning, især af webadministratorer. Dette indlæg uddybede processen i detaljer og gav trinene og et eksempel for at sikre, at du komfortabelt følger med og formår at implementere det samme i dit tilfælde. Gennemgå hvert trin og sørg for, at du forstår konceptet og processen for at implementere det.