Ku rakibida dheelitiriyaha culeyska HAProxy ee CentOS

Turjumaada maqaalka waxaa la diyaariyay ka hor bilowga koorsada "Maamulaha Linux. Farsamaynta iyo ururinta"

Ku rakibida dheelitiriyaha culeyska HAProxy ee CentOS

Isku-dheellitirka culeysku waa xal caadi ah oo si toos ah u miisaamaya codsiyada webka ee martigeliyayaal badan iyadoo la siinayo isticmaalayaasha hal dhibic oo ay ka helaan adeegga. HAProxy waa mid ka mid ah software-ka dheelitirka culeyska isha furan ee ugu caansan kaas oo sidoo kale bixiya helitaan sare iyo shaqeynta wakiil.

HAProxy waxay ku dadaashaa inay wanaajiso isticmaalka kheyraadka, kordhiso wax soo saarka, yarayso wakhtiga jawaabta, oo ay iska ilaaliso culayska kheyraadka gaarka ah. Waxaa lagu rakibi karaa noocyo kala duwan oo Linux ah, sida CentOS 8, oo aan diiradda saari doono hagahan, iyo sidoo kale nidaamyada. Debian 8 ΠΈ Ubuntu 16.

Ku rakibida dheelitiriyaha culeyska HAProxy ee CentOS

HAProxy waxay si gaar ah ugu habboon tahay bogagga internetka ee leh taraafikada aadka u sarreeya, sidaas darteed waxaa badanaa loo isticmaalaa in lagu hagaajiyo isku hallaynta iyo waxqabadka isku xirka adeegga shabakadda ee server-yada badan. Hagahan waxa uu qeexayaa tillaabooyinka lagu dejinayo HAProxy sida miisaan-dheelliye culeyska CentOS 8 ee martigeliyaha daruuraha, kaas oo markaa u sii mara taraafikada mareegahaaga.

Shuruudaha natiijada ugu fiican, waa inaad haysataa ugu yaraan laba mareegaha internetka iyo server-ka dheelitirka culeyska. Adeegayaasha shabakadu waa inay ku shaqeeyaan ugu yaraan adeegga shabakadda aasaasiga ah sida nginx ama httpd si loo tijaabiyo isu dheelitirka culeyska dhexdooda.

Ku rakibida HAProxy CentOS 8

Sababtoo ah HAProxy waa codsi il furan oo si degdeg ah u kobcaya, qaybinta aad ka heli karto kaydadka CentOS ee caadiga ah waxaa laga yaabaa inaanay noqon noocii ugu dambeeyay. Si aad u ogaato nooca hadda, socodsii amarka soo socda:

sudo yum info haproxy

HAProxy had iyo jeer waxay bixisaa saddex nooc oo deggan oo laga kala dooranayo: labadii nooc ee ugu dambeeyay ee la taageeray iyo mid saddexaad, nooca da'da ah oo weli helaya cusboonaysiinta muhiimka ah. Waxaad mar walba hubin kartaa nooca ugu dambeeyay ee xasilloon ee ku taxan bogga HAProxy ka dibna go'aan ka gaar nooca aad rabto inaad la shaqeyso.

Hagahan, waxaanu ku rakibi doonaa nooca ugu dambeeyay 2.0, kaas oo aan wali laga helin kaydadka caadiga ah wakhtiga qorista hagaha. Waxaad u baahan doontaa inaad ka rakibto isha asalka ah. Laakiin marka hore, hubi inaad buuxisay shuruudaha lagama maarmaanka ah si aad u soo dejiso oo aad u ururiso barnaamijka.

sudo yum install gcc pcre-devel tar make -y

Soo deji koodhka isha adoo isticmaalaya amarka hoose. Waxaad hubin kartaa haddii uu jiro nooc cusub oo la heli karo HAProxy soo dejiso bogga.

wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz

Marka soo dejintu dhammaato, soo saar feylasha adiga oo isticmaalaya amarka hoose:

tar xzvf ~/haproxy.tar.gz -C ~/

Tag tusaha isha ee aan xidhxidhnayn:

cd ~/haproxy-2.0.7

Kadibna u diyaari barnaamijka nidaamkaaga:

make TARGET=linux-glibc

Ugu dambeyntiina, rakib HAProxy lafteeda:

sudo make install

HAProxy hadda waa la rakibay, laakiin waxay u baahan tahay wax-qabadyo dheeraad ah si ay u shaqeyso. Aynu sii wadno dejinta software-ka iyo adeegyada hoose.

Dejinta HAProxy server-kaaga

Hadda ku dar hagaha soo socda iyo faylka tirakoobka gelitaanka HAProxy:

sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy 
sudo touch /var/lib/haproxy/stats

U samee xiriiriye calaamad u ah binaries si aad ugu socodsiiso amarrada HAProxy isticmaale caadi ah:

sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

Haddii aad rabto inaad ku darto wakiil nidaamkaaga adeeg ahaan, nuqul ka koobbi faylka haproxy.init tusaale ahaan buuggaaga /etc/init.d. Tafatir oggolaanshaha faylka si qoraalku u shaqeeyo, ka dibna dib u bilaabo systemd daemon:

sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload

Waxa kale oo aad u baahan tahay inaad u ogolaato adeega inuu si toos ah dib u bilaabo marka nidaamku bilaabmo:

sudo chkconfig haproxy on

Si sahlanaato, waxaa sidoo kale lagula talinayaa in lagu daro isticmaale cusub si uu u maamulo HAProxy:

sudo useradd -r haproxy

Taas ka dib, waxaad mar kale hubin kartaa lambarka nooca la rakibay adoo isticmaalaya amarka soo socda:

haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/

Xaaladeena, nuqulku waa inuu noqdaa 2.0.7, sida ku cad wax soo saarka tusaalaha ee kore.

Ugu dambeyntii, dab-damiska caadiga ah ee CentOS 8 ayaa aad u xaddidaya mashruucan. Isticmaal amarradan soo socda si aad u oggolaato adeegyada loo baahan yahay oo dib u dejiso firewall-ka:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload

Dejinta Balancer load

Dejinta HAProxy waa hab fudud oo cadaalad ah. Asal ahaan, waxa kaliya ee aad u baahan tahay inaad samayso waa inaad HAProxy u sheegtaa xidhiidhada ay tahay inay dhagaystaan ​​iyo halka ay tahay inay ku gudbiyaan.

Tan waxaa lagu sameeyaa iyadoo la abuurayo faylka qaabeynta /etc/haproxy/haproxy.cfg oo leh jaangooyo qeexaya. Waxaad ka akhrisan kartaa xulashooyinka qaabeynta HAProxy bogga dukumentiyadahaddii aad rabto inaad wax badan ka ogaato.

Isku-dheellitirka culeyska lakabka gaadiidka (lakabka 4)

Aan ku bilowno dejinta aasaasiga ah. Samee fayl habayn cusub, tusaale ahaan adigoo isticmaalaya vi iyadoo amarka hoos ku qoran:

sudo vi /etc/haproxy/haproxy.cfg

Ku dar qaybaha soo socda faylka. Beddel server_name waxa loogu yeero server-yadaada bogga tirakoobka, iyo private_ip - Cinwaannada IP-ga gaarka ah ee server-yada aad rabto inaad u hagto taraafikada shabakadda. Waxaad hubin kartaa ciwaanada IP-ga ee gaarka ah on the UpCloud panel control iyo tabka Shabakad gaar ah Liiska Network.

global
   log /dev/log local0
   log /dev/log local1 notice
   chroot /var/lib/haproxy
   stats timeout 30s
   user haproxy
   group haproxy
   daemon

defaults
   log global
   mode http
   option httplog
   option dontlognull
   timeout connect 5000
   timeout client 50000
   timeout server 50000

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

Tani waxay qeexaysaa isku dheeli tirnaanta culeyska lakabka gaadiidka (lakabka 4) dibadda loogu magac daray http_front dhageysiga dekedda 80, kaas oo markaas u gudbiya taraafikada dhabarka dambe ee loo yaqaan http_back. Tirokoobyada dheeriga ah ee /haproxy?stats waxay ku xidhaa bogga tirakoobka iyo ciwaanka la cayimay.

Algorithms isku dheelitirka culeyska kala duwan.

Sheegidda server-yada qaybta dambe waxay u ogolaataa HAProxy inay u isticmaasho adeegayaashan isku dheelitirnaanta culeyska iyadoo loo eegayo algorithm-robin wareega marka ay suurtagal tahay.

Isku-dheellitirka algorithms-yada waxaa loo isticmaalaa si loo go'aamiyo server-ka dhabarka dambe ee xiriir kasta loo gudbiyo. Waa kuwan qaar ka mid ah xulashooyinka waxtarka leh:

  • Roondrobin: Server kastaa markiisa ayaa loo adeegsadaa hadba sida uu miisaankiisu yahay. Kani waa algorithmamka ugu fudud uguna cadaalad badan marka wakhtiga habaynta ee adeegayaashu ay si siman u qaybsan yihiin. Algorithm-kani waa mid firfircoon, taas oo u oggolaanaysa miisaanka server-ka in lagu hagaajiyo duulista.
  • Leastconn: server-ka leh xiriirka ugu yar ayaa la doortay. Wareegga wareega ayaa lagu sameeyaa inta u dhaxaysa server-yada leh culeys isku mid ah. Isticmaalka algorithm-kan waxaa lagula talinayaa kulamo dheer sida LDAP, SQL, TSE, iwm, laakiin aad uguma habboona fadhiyada gaaban sida HTTP.
  • Marka hore: Adeegga ugu horreeya ee leh boosaska isku xirka ee la heli karo ayaa helaya xiriirka. Server-yada waxa laga soo xulaa aqoonsiga lambar ee ugu hooseeya ilaa kan ugu sarreeya, kaas oo ku dhici kara booska seerfarku ku leeyahay beerta. Marka server uu gaaro maxconn, server-ka xiga ayaa la isticmaalayaa.
  • Source: Ciwaanka IP-ga isha waa la xaday oo waxaa loo qaybiyay wadarta miisaanka adeegayaasha si loo go'aamiyo server-ka heli doona codsiga. Sidan, cinwaanka IP-ga macmiilka ah ayaa had iyo jeer aadi doona isla server, halka adeegayaashu ay ahaanayaan sidii hore.

Dejinta dheelitirka culeyska heerka codsiga (lakabka 7)

Ikhtiyaarka kale ee la heli karo ayaa ah in la habeeyo dheellitirka culeyska si uu ugu shaqeeyo lakabka codsiga (lakabka 7), kaas oo faa'iido leh marka qaybo ka mid ah codsigaaga shabakadu ay ku yaalaan martigeliyayaal kala duwan. Tan waxaa lagu gaari karaa iyadoo la xakameynayo gudbinta xiriirka, tusaale ahaan URL.

Fur faylka qaabeynta HAProxy adoo isticmaalaya tifaftiraha qoraalka:

sudo vi /etc/haproxy/haproxy.cfg

Ka dib u habbee qaybaha hore iyo kuwa dambe sida ku cad tusaalaha hoose:

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   acl url_blog path_beg /blog
   use_backend blog_back if url_blog
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

backend blog_back
   server server_name3 private_ip3:80 check

Xagga hore wuxuu ku dhawaaqayaa qaanuunka ACL ee loo yaqaan url_blog kaasoo quseeya dhammaan isku xirka waddooyinka ka bilaabma/blog. Use_backend waxa uu qeexayaa in xidhiidhada ku habboon url_blog ay tahay in uu u adeego qof dhabarka ah oo magaciisa la yidhaahdo blog_back, iyo dhammaan codsiyada kale waxa gacanta ku haya dhabarka dambe.

Dhinaca dambe, qaabayntu waxa ay dejisaa laba kooxood oo adeegayaal ah: http_back, sidii hore, iyo mid cusub oo loo yaqaan blog_back, kaas oo gacanta ku haya isku xidhka example.com/blog.

Ka dib markaad bedesho goobaha, kaydi faylka oo dib u bilaw HAProxy adoo isticmaalaya amarka soo socda:

sudo systemctl restart haproxy

Haddii aad hesho wax digniino ah ama farriimaha khaladka ah inta lagu jiro bilawga, hubi qaabayntaada iyaga oo hubi inaad abuurtay dhammaan faylasha iyo faylalka lagama maarmaanka ah, ka dibna isku day inaad mar kale dib u bilowdo.

Tijaabinta habaynta

Marka HAProxy la habeeyo oo la ordo, fur cinwaanka IP-ga dadweynaha ee server-ka culeyska culeyska ee browserka oo hubi haddii aad si sax ah ugu xiran tahay dhabarka dambe. Halbeegga ur ee istaatistikada ee qaabeynta wuxuu abuuraa bogga tirakoobka ee ciwaanka la cayimay.

http://load_balancer_public_ip/haproxy?stats

Markaad buuxiso bogga tirakoobka, haddii dhammaan server-yadaadu ay muujiyaan cagaar, ka dibna dejinta ayaa lagu guuleystay!

Ku rakibida dheelitiriyaha culeyska HAProxy ee CentOS

Bogga tirakoobka waxaa ku jira macluumaad faa'iido leh oo loogu talagalay dabagalka martigeliyahaaga webka, oo ay ku jiraan wakhtiga kor/hoos u dhaca iyo tirada fadhiyada. Haddii seerfarku calaamadaysan yahay casaan, hubi in seerfarku shidmay oo aad ka ping-ka-qaadi karto mishiinka dheelitirka culeyska.

Haddii miisaan-hayahaagu aanu ka jawaabin, hubi in isku xidhka HTTP aanu xidhin dab-damis. Sidoo kale hubi in HAProxy ay ku shaqeyneyso adoo isticmaalaya amarka hoose:

sudo systemctl status haproxy

Ku ilaalinta bogga tirakoobka erayga sirta ah

Si kastaba ha noqotee, haddii bogga tirakoobka uu si fudud ugu taxan yahay dhinaca hore, markaas way u furan tahay qof walba inuu arko, taas oo laga yaabo inaysan ahayn fikrad wanaagsan. Taa baddalkeeda, waxaad ku meelayn kartaa lambarka dekedda gaarka ah adoo ku daraya tusaalaha hoose dhammaadka faylkaaga haproxy.cfg. Beddel username ΠΈ password wax badbaado leh:

listen stats
   bind *:8181
   stats enable
   stats uri /
   stats realm Haproxy Statistics
   stats auth username:password

Ka dib marka lagu daro koox cusub oo dhegeyste ah, ka saar isku xirka hore ee stats uri kooxda hore. Marka la dhammeeyo, kaydi faylka oo dib u bilow HAProxy.

sudo systemctl restart haproxy

Kadib fur dheelitirka culeyska mar labaad lambarka cusub ee dekedda oo gal magaca isticmaalaha iyo erayga sirta ah ee aad ku qeexday faylka qaabeynta.

http://load_balancer_public_ip:8181

Hubi in dhammaan server-yadaadu ay weli muujinayaan cagaar ka dibna fur kaliya culeyska culeyska IP-ga iyada oo aan wax nambaro deked ah ku jirin biraawsarkaaga.

http://load_balancer_public_ip/

Haddii aad haysato ugu yaraan bogag kala duwan oo kala duwan oo ka mid ah server-yadaada dambe, waxaad ogaan doontaa in mar kasta oo aad dib u soo celiso bogga aad ka hesho jawaab celin kale. Waxaad isku dayi kartaa algorithms-ka dheelitirka kala duwan ee qaybta qaabeynta ama iska hubi dukumeenti dhamaystiran.

Gabagabo: HAProxy Load Balancer

Hambalyo inaad si guul leh u dejisay miisaan-hayaha culayskaaga HAProxy! Xataa iyada oo la adeegsanayo isku-dheellitirka culeyska aasaasiga ah, waxaad si weyn u wanaajin kartaa waxqabadka iyo helitaanka codsigaaga shabakadda. Hagahan waa hordhac kaliya oo ku saabsan isku dheelitirka HAProxy, kaas oo awood u leh in ka badan waxa lagu dabooli karo hagaha dejinta degdegga ah. Waxaan kugula talineynaa inaad tijaabiso qaabab kala duwan adoo isticmaalaya dukumeenti ballaaran, diyaar u ah HAProxy, ka dibna billow qorsheynta isku dheelitirka culeyska deegaankaaga wax soo saarka.

Adigoo isticmaalaya martigeliyayaal badan si aad u ilaaliso adeegaaga shabakada qolka hore, miisaanka culayska laftiisa ayaa laga yaabaa inuu weli soo bandhigo dhibic guul darro ah. Waxaad sii wanaajin kartaa helitaan sare adiga oo ku rakibaya IP sabbaynaya inta u dhaxaysa miisaaniyayaal badan oo xamuul ah. Waxaad ka heli kartaa wax badan oo arrintan ku saabsan annaga maqaal ku saabsan sabbaynaya cinwaanada IP UpCloud.

Wax badan oo ku saabsan koorsada "Maamulaha Linux. Farsamaynta iyo ururinta"***

Source: www.habr.com

Add a comment