Hvordan konfigurere HAProxy for WebSocket-tilkoblinger

Hvordan Konfigurere Haproxy For Websocket Tilkoblinger



WebSocket-applikasjoner har sanntids- og toveiskommunikasjon mellom klienten og serveren. Selv med WebSocket-tilkoblinger trenger du fortsatt en måte å distribuere trafikken på for å unngå overbelastning av en server som vil føre til nedetid og utilgjengelighet.

HAProxy er et eksempel på en gratis og pålitelig lastbalanser som også fungerer som en omvendt proxy. Du kan konfigurere HAProxy for WebSocket-tilkoblinger for å bedre utnytte WebSockets sine funksjoner, spesielt ved sanntidsdataoverføring, samtidig som du minimerer serverbelastningen ved å bruke HAProxy. Dette innlegget presenterer alle nødvendige trinn for å konfigurere HAProxy for WebSocket-tilkoblinger.

Trinn-for-trinn-veiledning for hvordan du konfigurerer HAProxy for WebSocket-tilkoblinger

Med WebSocket-tilkoblinger er server- og klientkommunikasjonen langvarig. Den vedvarer til serveren eller klienten bestemmer seg for å lukke den. Som sådan sikrer det å ha en måte å jobbe med en lastbalanser på at trafikken kan distribueres til en annen server hvis serveren er overbelastet. På den måten kan klienten og serveren nyte en uavbrutt og langvarig tilkobling med lav ventetid.







1. Installer HAProxy

Det første trinnet for å konfigurere HAProxy for WebSocket-tilkoblinger er å sikre at du har HAProxy installert. Hvis du allerede har det installert, hopp over dette trinnet. Ellers, kjør følgende kommando for å installere den:



$ sudo apt-get install haproksy



2. Rediger HAProxy-konfigurasjonen

For å konfigurere HAProxy for WebSocket-tilkoblinger, må vi redigere HAProxy-konfigurasjonen for å støtte WebSocket-tilkoblingene. Vi må endre 'Standard'-delen og opprette delene 'Frontend' og 'Backend'.





Åpne HAProxy-konfigurasjonen ved å bruke et tekstredigeringsprogram som følger:

$ sudo nano / etc / haproksy / haproxy.cfg

I delen 'Standarder' endrer du den som vist i bildet nedenfor. Først spesifiserer vi at vi jobber med HTTP-tilkoblinger og definerer hvor loggfilene skal sendes. Deretter setter vi tidsavbrudd for forskjellige aktiviteter. For eksempel er tidsavbruddstilkoblingen den maksimale tiden et tilkoblingsforsøk til serveren skal ta. Hvis maksimal tid er nådd, konkluderes tilkoblingen med å ha mislyktes og kan prøves på nytt.



For dette tilfellet setter vi tidsavbruddstilkoblingen til 5000 millisekunder. Du kan justere tidsavbruddet etter hvordan du ser dem best for ditt tilfelle. Juster dem basert på applikasjonen din, og husk WebSocket-øktenes varighet og hvor lang levetid du forventer at de skal være.

Deretter må vi lage 'Frontend'-delen der vi binder hvilke porter som skal brukes for WebSocket-tilkoblingene og hvilken backend-server som skal refereres til. For dette tilfellet spesifiserer vi port 80 og gir URL-en for å få tilgang til 'Stats'-siden for å overvåke vår HAProxy. Til slutt definerer vi hvilken backend-seksjon som skal refereres til i lastbalansering.

I 'Backend'-delen fordeler vi lasten ved hjelp av round robin. 'Alternativ videresending for' spesifiserer at HAProxy skal inkludere en 'X-Forward-For'-header som inneholder klientens IP-adresse når tilkoblingsforespørselen sendes. På den måten vil backend-serveren få riktig klient-IP.

'Alternativet http-server-lukk' begrenser ressursene ved å eliminere eventuelle ledige tilkoblinger fra å ta opp serverressursene. Selv om WebSocket-tilkoblingene har lang levetid, må vi se etter ledige langtidsforbindelser og lukke dem for å unngå unødvendig ressurssløsing.

Til slutt legger du til backend-serverne som du vil bruke til å distribuere trafikken. Sørg for at du oppgir riktig IP-adresse for serverne og bytt ut de i følgende bilde:

Din HAProxy er nå konfigurert for WebSocket-tilkoblinger. Lagre endringene og lukk filen.

3. Test for gyldighet

Før vi starter HAProxy på nytt, kan vi kjøre en rask kommando for å sjekke om filen er gyldig og ikke har noen feil. For det, kjør følgende kommando:

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

4. Start på nytt og test WebSocket-tilkoblingen

Når filen er gyldig, start HAProxy-tjenesten på nytt.

Det er det. Du konfigurerte HAProxy for WebSocket-tilkoblinger. Du kan teste tilkoblingen for å sikre at all WebSocket-trafikken videresendes riktig.

Konklusjon

Konfigurering av HAProxy for WebSocket-tilkoblinger er en ettertraktet løsning, spesielt av nettadministratorer. Dette innlegget utdypet prosessen i detalj, og ga trinnene og et eksempel for å sikre at du komfortabelt følger med og klarer å implementere det samme i ditt tilfelle. Gå gjennom hvert trinn og sørg for at du forstår konseptet og prosessen for å implementere det.