Paano I-configure ang HAProxy para sa Mga Koneksyon sa WebSocket

Paano I Configure Ang Haproxy Para Sa Mga Koneksyon Sa Websocket



Ang mga application ng WebSocket ay may real-time at bidirectional na komunikasyon sa pagitan ng kliyente at ng server. Kahit na may mga koneksyon sa WebSocket, kailangan mo pa rin ng isang paraan upang ipamahagi ang trapiko upang maiwasan ang labis na karga ng isang server na hahantong sa downtime at hindi magagamit.

Ang HAProxy ay isang halimbawa ng libre at maaasahang load balancer na gumagana rin bilang reverse proxy. Maaari mong i-configure ang HAProxy para sa mga koneksyon sa WebSocket upang mas mahusay na magamit ang mga feature ng WebSockets, lalo na sa real-time na paglilipat ng data, habang pinapaliit ang pag-load ng server gamit ang HAProxy. Ang post na ito ay nagpapakita ng lahat ng kinakailangang hakbang upang i-configure ang HAProxy para sa mga koneksyon sa WebSocket.

Step-by-Step na Gabay sa Paano I-configure ang HAProxy para sa WebSocket Connections

Sa mga koneksyon sa WebSocket, ang komunikasyon ng server at kliyente ay matagal. Nagpapatuloy ito hanggang sa magpasya ang server o kliyente na isara ito. Dahil dito, ang pagkakaroon ng isang paraan upang gumana sa isang load balancer ay nagsisiguro na ang trapiko ay maaaring ipamahagi sa isa pang server kung ang server ay overloaded. Sa ganoong paraan, masisiyahan ang kliyente at server ng walang patid at pangmatagalang koneksyon sa mababang latency.







1. I-install ang HAProxy

Ang unang hakbang upang i-configure ang HAProxy para sa mga koneksyon sa WebSocket ay upang matiyak na mayroon kang naka-install na HAProxy. Kung na-install mo na ito, laktawan ang hakbang na ito. Kung hindi, patakbuhin ang sumusunod na command upang mai-install ito:



$ sudo apt-get install haproxy



2. I-edit ang HAProxy Configuration

Upang i-configure ang HAProxy para sa mga koneksyon sa WebSocket, dapat nating i-edit ang configuration ng HAProxy upang suportahan ang mga koneksyon sa WebSocket. Dapat nating baguhin ang seksyong 'Mga Default' at gawin ang mga seksyong 'Frontend' at 'Backend'.





Buksan ang HAProxy config gamit ang isang text editor gaya ng sumusunod:

$ sudo nano / atbp / haproxy / haproxy.cfg

Sa seksyong 'Mga Default', baguhin ito gaya ng ipinakita sa sumusunod na larawan. Una, tinukoy namin na nagtatrabaho kami sa mga koneksyon sa HTTP at tinutukoy kung saan ipapadala ang mga log file. Susunod, itinakda namin ang mga timeout para sa iba't ibang aktibidad. Halimbawa, ang timeout na kumonekta ay ang maximum na oras na dapat tumagal ng pagtatangka ng koneksyon sa server. Kung ang maximum na oras ay naabot, ang koneksyon ay napagpasyahan na nabigo at maaaring muling subukan.



Para sa kasong ito, itinakda namin ang timeout na kumonekta sa 5000 milliseconds. Maaari mong isaayos ang timeout sa kung paano mo nakikita ang mga ito nang pinakamahusay para sa iyong kaso. Ayusin ang mga ito batay sa iyong aplikasyon, at tandaan ang tagal ng mga sesyon ng WebSocket at kung gaano katagal ang iyong inaasahan.

Susunod, dapat nating likhain ang seksyong 'Frontend' kung saan itinatali natin kung anong mga port ang gagamitin para sa mga koneksyon sa WebSocket at kung anong backend server ang sasangguni. Para sa kasong ito, tinukoy namin ang port 80 at binibigyan namin ang URL para ma-access ang page na “Stats” para subaybayan ang aming HAProxy. Panghuli, tinutukoy namin kung anong seksyon ng backend ang sasangguni sa pagbabalanse ng load.

Sa seksyong 'Backend', ipinamahagi namin ang load gamit ang round robin. Tinutukoy ng “option forward for” sa HAProxy na magsama ng header na “X-Forward-For” na naglalaman ng IP address ng kliyente kapag nagpapadala ng kahilingan sa koneksyon. Sa ganoong paraan, makukuha ng backend server ang tamang IP ng kliyente.

Ang 'opsyon na http-server-close' ay naghihigpit sa mga mapagkukunan sa pamamagitan ng pag-aalis ng anumang mga idle na koneksyon mula sa pagkuha ng mga mapagkukunan ng server. Bagama't ang mga koneksyon sa WebSocket ay matagal nang nabubuhay, dapat nating suriin ang mga walang ginagawa na pangmatagalang koneksyon at isara ang mga ito upang maiwasan ang hindi kinakailangang pag-aaksaya ng mapagkukunan.

Panghuli, idagdag ang mga backend server na gagamitin mo upang ipamahagi ang trapiko. Tiyaking ibibigay mo ang tamang IP address para sa mga server at palitan ang mga nasa sumusunod na larawan:

Ang iyong HAProxy ay na-configure na ngayon para sa mga koneksyon sa WebSocket. I-save ang mga pagbabago at isara ang file.

3. Pagsubok para sa Bisa

Bago namin i-restart ang HAProxy, maaari kaming magpatakbo ng isang mabilis na command upang suriin kung ang file ay wasto at walang error. Para dito, patakbuhin ang sumusunod na command:

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

4. I-restart at Subukan ang WebSocket Connection

Kapag valid na ang file, i-restart ang serbisyo ng HAProxy.

Ayan yun. Na-configure mo ang HAProxy para sa mga koneksyon sa WebSocket. Maaari mong subukan ang koneksyon upang matiyak na ang lahat ng trapiko sa WebSocket ay naipapasa nang tama.

Konklusyon

Ang pag-configure ng HAProxy para sa mga koneksyon sa WebSocket ay isang hinahanap na solusyon, lalo na ng mga web administrator. Ang post na ito ay nagpapaliwanag nang detalyado sa proseso, na nagbibigay ng mga hakbang at isang halimbawa upang matiyak na kumportable kang sumunod at namamahala upang ipatupad ang pareho sa iyong kaso. Dumaan sa bawat hakbang at tiyaking nauunawaan mo ang konsepto at ang proseso para ipatupad ito.