Ukuhunyushwa kwesihloko kwalungiselelwa ngobusuku bangaphambi kokuqala kwesifundo
Ukulayisha ukulinganisa kuyisixazululo esivamile sokulinganisa ngokuvundlile izinhlelo zokusebenza zewebhu kubasingathi abaningi kuyilapho kunikeza abasebenzisi iphuzu elilodwa lokufinyelela kusevisi.
I-HAProxy ilwela ukuthuthukisa ukusetshenziswa kwensiza, ukukhulisa ukuphuma, ukunciphisa isikhathi sokuphendula, nokugwema ukulayisha ngokweqile noma iyiphi insiza ngayinye. Ingafakwa ezinhlobonhlobo zokusabalalisa kwe-Linux, njenge-CentOS 8, esizogxila kuyo kulo mhlahlandlela, kanye nezinhlelo.
I-HAProxy ifaneleka ngokukhethekile kumawebhusayithi anethrafikhi ephezulu kakhulu ngakho-ke ivame ukusetshenziselwa ukuthuthukisa ukwethembeka nokusebenza kokucushwa kwesevisi yewebhu yamaseva amaningi. Lo mhlahlandlela uchaza izinyathelo zokusetha i-HAProxy njengesilinganisi somthwalo kumsingathi wamafu we-CentOS 8, obese ehambisa ithrafikhi kumaseva akho ewebhu.
Njengemfuneko yemiphumela engcono kakhulu, kufanele okungenani ube namaseva ewebhu amabili kanye neseva yokulinganisa umthwalo. Amaseva ewebhu kufanele asebenzise okungenani isevisi yewebhu eyisisekelo njenge-nginx noma i-httpd ukuze ahlole ukulinganisa kokulayisha phakathi kwawo.
Ukufaka i-HAProxy ku-CentOS 8
Ngenxa yokuthi i-HAProxy iwumthombo ovulekile wohlelo lokusebenza oluvela ngokushesha, ukusatshalaliswa okutholakala kuwe kumakhosombe avamile we-CentOS kungase kungabi inguqulo yakamuva. Ukuze uthole inguqulo yamanje, sebenzisa umyalo olandelayo:
sudo yum info haproxy
I-HAProxy ihlale ihlinzeka ngezinguqulo ezintathu ezinzile ongakhetha kuzo: izinguqulo ezimbili zakamuva ezisekelwayo kanye nenguqulo yesithathu, endala esathola izibuyekezo ezibalulekile. Ungahlala ubheka inguqulo yakamuva ezinzile esohlwini lwewebhusayithi ye-HAProxy bese unquma ukuthi iyiphi inguqulo ofuna ukusebenza nayo.
Kulo mhlahlandlela, sizofaka inguqulo yakamuva ezinzile engu-2.0, ebingakatholakali kumakhosombe ajwayelekile ngesikhathi sokubhala umhlahlandlela. Uzodinga ukuyifaka emthonjeni wangempela. Kodwa okokuqala, hlola ukuthi ingabe uhlangabezane nezimo ezidingekayo ukuze ulande futhi uhlanganise uhlelo.
sudo yum install gcc pcre-devel tar make -y
Landa ikhodi yomthombo usebenzisa umyalo ongezansi. Ungahlola ukuthi ingabe ikhona yini inguqulo entsha etholakala kuyo
wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz
Uma ukulanda sekuqediwe, khipha amafayela usebenzisa umyalo ongezansi:
tar xzvf ~/haproxy.tar.gz -C ~/
Iya kumkhombandlela womthombo ongapakishiwe:
cd ~/haproxy-2.0.7
Bese uhlanganisa uhlelo lwesistimu yakho:
make TARGET=linux-glibc
Futhi ekugcineni, faka i-HAProxy ngokwayo:
sudo make install
I-HAProxy manje isifakiwe, kodwa idinga ezinye izikhohlisi ezengeziwe ukuze isebenze. Masiqhubeke sisethe isofthiwe namasevisi ngezansi.
Isetha i-HAProxy yeseva yakho
Manje engeza izinkomba ezilandelayo nefayela lezibalo kokufakiwe kwe-HAProxy:
sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats
Dala isixhumanisi esingokomfanekiso samabhanari ukuze ukwazi ukusebenzisa imiyalo ye-HAProxy njengomsebenzisi ojwayelekile:
sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
Uma ufuna ukwengeza ummeleli ohlelweni lwakho njengesevisi, kopisha ifayela elithi haproxy.init kusuka ezibonelweni uye kunkomba yakho /etc/init.d. Hlela izimvume zefayela ukuze iskripthi sisebenze, bese uqala kabusha i-daemon ye-systemd:
sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload
Udinga futhi ukuvumela isevisi ukuthi iqale kabusha ngokuzenzakalelayo lapho isistimu iqala:
sudo chkconfig haproxy on
Ukuze kube lula, kuyanconywa futhi ukwengeza umsebenzisi omusha ukusebenzisa i-HAProxy:
sudo useradd -r haproxy
Ngemva kwalokhu, ungabheka inombolo yenguqulo efakiwe futhi usebenzisa umyalo olandelayo:
haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/
Esimweni sethu, inguqulo kufanele ibe ngu-2.0.7, njengoba kuboniswe ekuphumeni kwesibonelo ngenhla.
Ekugcineni, i-firewall ezenzakalelayo ku-CentOS 8 ikhawulela le phrojekthi. Sebenzisa imiyalo elandelayo ukuze uvumele izinsizakalo ezidingekayo futhi usethe kabusha i-firewall:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload
Layisha Ukusethwa Kwebhalansi
Ukusetha i-HAProxy kuyinqubo elula. Empeleni, okudingeka ukwenze nje ukutshela i-HAProxy ukuthi ikuphi ukuxhumana okufanele ikulalele nokuthi kufanele ikudlulisele kuphi.
Lokhu kwenziwa ngokwakha ifayela lokumisa /etc/haproxy/haproxy.cfg elichaza izilungiselelo. Ungafunda mayelana nezinketho zokucushwa ze-HAProxy
Ukulayisha ukulinganisa kusendlalelo sezokuthutha (usendlalelo 4)
Ake siqale ngokusetha okuyisisekelo. Dala ifayela elisha lokumisa, isibonelo usebenzisa vi ngomyalo ongezansi:
sudo vi /etc/haproxy/haproxy.cfg
Engeza izigaba ezilandelayo kufayela. Faka esikhundleni igama le-server yini okufanele ibize amaseva akho ekhasini lezibalo, futhi i-private_ip - Amakheli e-IP ayimfihlo amaseva ofuna ukuqondisa kuwo ithrafikhi yewebhu. Ungahlola amakheli e-IP ayimfihlo
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
Lokhu kuchaza isilinganisi somthwalo wesendlalelo sezokuthutha (usendlalelo 4) ngaphandle esiqanjwe ngokuthi http_front ukulalela ku-port 80, ebese sidlulisela ithrafikhi endaweni engemuva ezenzakalelayo ebizwa ngokuthi http_back. Izibalo ezengeziwe /haproxy?stats zixhuma ikhasi lezibalo nekheli elishiwo.
Ama-algorithms ahlukahlukene wokulinganisa umthwalo.
Ukucacisa amaseva esigabeni se-backend kuvumela i-HAProxy ukuthi isebenzise lawa maseva ukulinganisa ukulayisha ngokusho kwe-algorithm ye-round-robin uma kungenzeka.
Ama-algorithms okulinganisa asetshenziselwa ukunquma ukuthi iyiphi iseva ku-backend uxhumano ngalunye oludluliselwa kuyo. Nazi ezinye zezinketho eziwusizo:
- I-Roundrobin: Iseva ngayinye isetshenziswa ngokushintshana ngokwesisindo sayo. Lena i-algorithm ebushelelezi nelungile uma isikhathi sokucubungula samaseva sihlala sisatshalaliswa ngokulinganayo. Le algorithm iyashintshashintsha, ivumela isisindo seseva ukuthi silungiswe ngokuhamba kwesikhathi.
- I-Leastconn: iseva enokuxhumana okumbalwa ikhethiwe. I-robin eyindilinga yenziwa phakathi kwamaseva anomthwalo ofanayo. Ukusebenzisa le-algorithm kuyanconywa kumaseshini amade njenge-LDAP, SQL, TSE, njll., kodwa ayifaneleki kakhulu izikhathi ezimfushane njenge-HTTP.
- Okokuqala: Iseva yokuqala enezikhala zokuxhuma ezitholakalayo ithola uxhumano. Amaseva akhethwa kusukela ku-ID yenombolo ephansi ukuya kwephezulu, eshintshashintsha ngendlela yeseva epulazini. Uma iseva ifinyelela ku-maxconn, iseva elandelayo iyasetshenziswa.
- Source: Ikheli le-IP eliwumthombo lisheshisiwe futhi lihlukaniswa ngesisindo esiphelele samaseva asebenzayo ukuze kunqunywe ukuthi iyiphi iseva ezothola isicelo. Ngale ndlela, ikheli le-IP leklayenti elifanayo lizohlala liya kuseva efanayo, kuyilapho amaseva ehlala engashintshi.
Ukusetha ukulinganisa komthwalo ezingeni lesicelo (ungqimba 7)
Enye inketho etholakalayo ukulungisa isilinganisi somthwalo ukuze sisebenze kusendlalelo sohlelo lokusebenza (isendlalelo sesi-7), esiwusizo uma izingxenye zohlelo lwakho lokusebenza lwewebhu zitholakala kubasingathi abahlukahlukene. Lokhu kungafinyelelwa ngokucindezela ukudluliswa kokuxhumeka, isibonelo nge-URL.
Vula ifayela lokucushwa le-HAProxy usebenzisa isihleli sombhalo:
sudo vi /etc/haproxy/haproxy.cfg
Bese ulungiselela amasegimenti angaphambili nangemuva njengesibonelo esingezansi:
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
Indawo engaphambili imemezela umthetho we-ACL obizwa ngokuthi url_blog osebenza kukho konke ukuxhumana okunezindlela eziqala ngo/blog. I-Use_backend icacisa ukuthi ukuxhumana okufana nesimo se-url_blog kufanele kunikezwe i-backend ebizwa ngokuthi blog_back, futhi zonke ezinye izicelo zisingathwa yi-backend ezenzakalelayo.
Ohlangothini olungemuva, ukucushwa kumisa amaqembu amabili amaseva: http_back, njengangaphambili, kanye nelisha elibizwa ngokuthi blog_back, eliphatha ukuxhumana ku-example.com/blog.
Ngemuva kokushintsha izilungiselelo, gcina ifayela bese uqala kabusha i-HAProxy usebenzisa umyalo olandelayo:
sudo systemctl restart haproxy
Uma uthola noma yiziphi izexwayiso noma imilayezo yephutha ngesikhathi sokuqalisa, zihlolele ukuzilungiselela kwakho futhi uqiniseke ukuthi udale wonke amafayela namafolda adingekayo, bese uzama ukuqala kabusha futhi.
Ihlola ukusetha
Uma i-HAProxy isilungisiwe futhi iyasebenza, vula ikheli le-IP lomphakathi leseva yebhalansi yokulayisha esipheqululini bese uhlola ukuthi ingabe uxhumeke ku-backend ngendlela efanele. Ipharamitha ye-uri yezibalo ekucushweni idala ikhasi lezibalo ekhelini elishiwo.
http://load_balancer_public_ip/haproxy?stats
Uma ulayisha ikhasi lezibalo, uma zonke iziphakeli zakho zibonisa okuluhlaza, khona-ke ukusetha kube yimpumelelo!
Ikhasi lezibalo liqukethe ulwazi oluwusizo lokulandelela abasingathi bakho bewebhu, okuhlanganisa isikhathi sokukhuphuka/phansi kanye nenani lamaseshini. Uma iseva imakwe ngokubomvu, qiniseka ukuthi iseva ivuliwe nokuthi ungakwazi ukuyi-ping usuka emshinini wokulinganisa umthwalo.
Uma isilinganisi sakho somthwalo singaphenduli, qiniseka ukuthi ukuxhumeka kwe-HTTP akuvinjwa ngohlelo lokuvikela. Futhi qiniseka ukuthi i-HAProxy isebenza usebenzisa umyalo ongezansi:
sudo systemctl status haproxy
Ukuvikela ikhasi lezibalo ngephasiwedi
Kodwa-ke, uma ikhasi lezibalo lifakwe ohlwini ekuqaleni, livulekele wonke umuntu ukuthi alibone, okungenzeka kungabi wumqondo omuhle. Kunalokho, ungayabela inombolo yembobo yangokwezifiso ngokwengeza isibonelo esingezansi ekupheleni kwefayela lakho elithi haproxy.cfg. Faka esikhundleni igama lomsebenzisi ΠΈ iphasiwedi kokuthile okuphephile:
listen stats
bind *:8181
stats enable
stats uri /
stats realm Haproxy Statistics
stats auth username:password
Ngemva kokwengeza iqembu labalaleli elisha, susa isixhumanisi esidala sezibalo eqenjini le-frontend. Uma usuqedile, gcina ifayela bese uqala kabusha i-HAProxy.
sudo systemctl restart haproxy
Bese uvula futhi isilinganisi sokulayisha ngenombolo entsha yembobo bese ungena ngegama lomsebenzisi nephasiwedi oyicacisile kufayela lokumisa.
http://load_balancer_public_ip:8181
Qiniseka ukuthi zonke iziphakeli zakho zisabonisa okuluhlaza bese uvula i-IP yesilinganisi somthwalo ngaphandle kwanoma yiziphi izinombolo zembobo esipheqululini sakho.
http://load_balancer_public_ip/
Uma okungenani unamakhasi okuhlala ahlukahlukene kumaseva akho angemuva, uzoqaphela ukuthi ngaso sonke isikhathi uma ulayisha kabusha ikhasi uthola impendulo kumsingathi ohlukile. Ungazama ama-algorithms ahlukile wokulinganisa esigabeni sokumisa noma uhlole
Isiphetho: I-HAProxy Load Balancer
Siyakuhalalisela ngokusetha ngempumelelo isilinganisi sakho somthwalo we-HAProxy! Ngisho nokusetha okuyisisekelo kokulinganisa umthwalo, ungathuthukisa kakhulu ukusebenza nokutholakala kohlelo lwakho lokusebenza lewebhu. Lo mhlahlandlela uyisingeniso nje sokulayisha ukulinganisa nge-HAProxy, ekwazi ukwenza okungaphezu kwalokho okungambozwa kumhlahlandlela wokusetha okusheshayo. Sincoma ukuthi uzame ngokucupha okuhlukile usebenzisa
Ngokusebenzisa ababungazi abaningi ukuze uvikele isevisi yakho yewebhu nge-headroom, isilinganisi somthwalo ngokwaso singase silethe iphuzu lokwehluleka. Ungakwazi ukuthuthukisa ukutholakala okuphezulu ngokufaka i-IP entantayo phakathi kwezilinganisi eziningi zomthwalo. Ungathola okwengeziwe ngalokhu esihlokweni sethu
Okuningi mayelana nesifundo
Source: www.habr.com