Ukufaka i-HAProxy load balancer ku-CentOS

Ukuhunyushwa kwesihloko kwalungiselelwa ngobusuku bangaphambi kokuqala kwesifundo "I-Linux Administrator. I-Virtualization kanye nokuhlanganisa"

Ukufaka i-HAProxy load balancer ku-CentOS

Ukulayisha ukulinganisa kuyisixazululo esivamile sokulinganisa ngokuvundlile izinhlelo zokusebenza zewebhu kubasingathi abaningi kuyilapho kunikeza abasebenzisi iphuzu elilodwa lokufinyelela kusevisi. HAProxy ingenye yesofthiwe edume kakhulu yokulinganisa umthwalo womthombo ovulekile ehlinzeka ngokutholakala okuphezulu nokusebenza kommeleli.

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-Debian 8 ΠΈ Ubuntu 16.

Ukufaka i-HAProxy load balancer ku-CentOS

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 Ikhasi lokulanda le-HAProxy.

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 ekhasini lemibhalouma ufuna ukwazi okwengeziwe ngayo.

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 kuphaneli yokulawula ye-UpCloud nakuthebhu Inethiwekhi eyimfihlo kumenyu 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

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!

Ukufaka i-HAProxy load balancer ku-CentOS

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 amadokhumenti aphelele.

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 imibhalo eningi, etholakala ku-HAProxy, bese uqala ukuhlela ukulinganisa komthwalo wendawo yakho yokukhiqiza.

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 isihloko esimayelana namakheli e-IP antantayo ku-UpCloud.

Okuningi mayelana nesifundo "I-Linux Administrator. I-Virtualization kanye nokuhlanganisa"***

Source: www.habr.com

Engeza amazwana