Kuidas konfigureerida HAProxyt WebSocket-ühenduste jaoks

Kuidas Konfigureerida Haproxyt Websocket Uhenduste Jaoks



WebSocketi rakendustel on reaalajas ja kahesuunaline side kliendi ja serveri vahel. Isegi WebSocketi ühenduste korral vajate ikkagi viisi liikluse jaotamiseks, et vältida serveri ülekoormamist, mis tooks kaasa seisakuid ja kättesaamatust.

HAProxy on näide tasuta ja usaldusväärsest koormuse tasakaalustajast, mis töötab ka vastupidise puhverserverina. Saate konfigureerida HAProxy WebSocketi ühenduste jaoks, et paremini kasutada WebSocketsi funktsioone, eriti reaalajas andmeedastuse korral, minimeerides samal ajal serveri koormust HAProxy abil. See postitus sisaldab kõiki vajalikke samme HAProxy konfigureerimiseks WebSocketi ühenduste jaoks.

Samm-sammuline juhend HAProxy konfigureerimiseks WebSocket-ühenduste jaoks

WebSocket ühendustega on serveri ja kliendi suhtlus pikaealine. See püsib seni, kuni server või klient otsustab selle sulgeda. Sellisena tagab koormuse tasakaalustajaga töötamise viis liikluse jaotamise teise serverisse, kui server on ülekoormatud. Nii saavad klient ja server nautida katkematut ja pikaajalist ühendust madala latentsusajaga.







1. Installige HAProxy

Esimene samm HAProxy WebSocketi ühenduste jaoks konfigureerimiseks on veenduda, et teil on HAProxy installitud. Kui teil on see juba installitud, jätke see samm vahele. Vastasel juhul käivitage selle installimiseks järgmine käsk:



$ sudo apt-get install haproxy



2. Muutke HAProxy konfiguratsiooni

HAProxy konfigureerimiseks WebSocketi ühenduste jaoks peame muutma HAProxy konfiguratsiooni, et toetada WebSocketi ühendusi. Peame muutma jaotist „Vaikeseaded” ja looma jaotised „Frontend” ja „Backend”.





Avage HAProxy konfiguratsioon tekstiredaktoriga järgmiselt.

$ sudo nano / jne / haproxy / haproxy.cfg

Jaotises „Vaikeseaded” muutke seda järgmisel pildil näidatud viisil. Esiteks täpsustame, et töötame HTTP-ühendustega ja määrame, kuhu logifailid saata. Järgmiseks panime paika erinevate tegevuste ajalõpud. Näiteks ühenduse ajalõpp on maksimaalne aeg, mis peaks serveriga ühenduse loomiseks kuluma. Kui maksimaalne aeg on täis, loetakse ühenduse loomine ebaõnnestunuks ja seda saab uuesti proovida.



Sel juhul määrame ühenduse ajalõpuks 5000 millisekundit. Saate kohandada ajalõpu nii, nagu näete neid teie juhtumi jaoks kõige paremini. Kohandage neid vastavalt oma rakendusele ja pidage meeles WebSocketi seansside kestust ja seda, kui kaua need teie arvates on.

Järgmisena peame looma jaotise 'Frontend', kus seome, milliseid porte WebSocket-ühenduste jaoks kasutada ja millisele taustaserverile viidata. Sel juhul määrame pordi 80 ja anname URL-i, et pääseda juurde lehele „Stats”, et jälgida meie HAProxyt. Lõpuks määratleme, millisele taustaprogrammi jaotisele koormuse tasakaalustamisel viidata.

Jaotises 'Tagakülg' jagame koormuse ringi kasutades. Valik 'edasi edastamine' määrab, et HAProxy lisab ühendustaotluse saatmisel päise 'X-Forward-For', mis sisaldab kliendi IP-aadressi. Nii saab taustaserver õige kliendi IP-aadressi.

'Valik http-server-close' piirab ressursse, välistades kõik jõudeolevad ühendused serveriressursside hõivamisest. Kuigi WebSocketi ühendused on pikaealised, peame tarbetu ressursside raiskamise vältimiseks kontrollima jõudeolevaid pikaealisi ühendusi ja need sulgema.

Lõpuks lisage taustaserverid, mida kasutate liikluse levitamiseks. Veenduge, et sisestate serverite jaoks õiged IP-aadressid ja asendage järgmisel pildil olevad:

Teie HAProxy on nüüd WebSocketi ühenduste jaoks konfigureeritud. Salvestage muudatused ja sulgege fail.

3. Kehtivuse test

Enne HAProxy taaskäivitamist saame käivitada kiirkäskluse, et kontrollida, kas fail on kehtiv ja vigadeta. Selleks käivitage järgmine käsk:

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

4. Taaskäivitage ja testige WebSocketi ühendust

Kui fail on kehtiv, taaskäivitage teenus HAProxy.

see on kõik. Konfigureerisite HAProxy WebSocketi ühenduste jaoks. Saate ühendust testida, et tagada kogu WebSocketi liikluse korrektne edastamine.

Järeldus

HAProxy seadistamine WebSocketi ühenduste jaoks on nõutud lahendus, eriti veebiadministraatorite poolt. See postitus kirjeldas protsessi üksikasjalikult, tuues sammud ja näite, mis tagab, et järgite mugavalt ja õnnestub sama oma puhul rakendada. Läbige iga samm ja veenduge, et mõistate kontseptsiooni ja selle rakendamise protsessi.