Tafsiri ya kifungu hicho ilitayarishwa usiku wa kuamkia kozi hiyo
Kusawazisha mizigo ni suluhisho la kawaida la kuongeza mlalo programu za wavuti kwenye wapangishaji wengi huku ikiwapa watumiaji sehemu moja ya kufikia huduma.
HAProxy inajitahidi kuboresha matumizi ya rasilimali, kuongeza upitishaji, kupunguza muda wa majibu, na kuepuka kupakia rasilimali yoyote ya mtu binafsi. Inaweza kusakinishwa kwenye aina mbalimbali za usambazaji wa Linux, kama vile CentOS 8, ambayo tutazingatia katika mwongozo huu, pamoja na mifumo.
HAProxy inafaa haswa kwa tovuti zilizo na trafiki ya juu sana na kwa hivyo hutumiwa mara nyingi kuboresha kutegemewa na utendakazi wa usanidi wa huduma za wavuti za seva nyingi. Mwongozo huu unaonyesha hatua za kusanidi HAProxy kama kisawazisha cha upakiaji kwenye seva pangishi ya wingu ya CentOS 8, ambayo kisha huelekeza trafiki kwa seva zako za wavuti.
Kama sharti la matokeo bora, unapaswa kuwa na angalau seva mbili za wavuti na seva ya kusawazisha mzigo. Seva za wavuti lazima ziwe zinaendesha angalau huduma ya msingi ya wavuti kama vile nginx au httpd ili kujaribu kusawazisha upakiaji kati yao.
Inasakinisha HAProxy kwenye CentOS 8
Kwa sababu HAProxy ni programu huria inayobadilika kwa haraka, usambazaji unaopatikana kwako katika hazina za kawaida za CentOS huenda usiwe toleo jipya zaidi. Ili kujua toleo la sasa, endesha amri ifuatayo:
sudo yum info haproxy
HAProxy daima hutoa matoleo matatu thabiti ya kuchagua kutoka: matoleo mawili ya hivi karibuni yanayotumika na ya tatu, toleo la zamani ambalo bado linapokea masasisho muhimu. Unaweza kuangalia toleo la hivi punde thabiti lililoorodheshwa kwenye tovuti ya HAProxy kisha uamue ni toleo gani ungependa kufanya kazi nalo.
Katika mwongozo huu, tutakuwa tunasakinisha toleo la hivi punde la 2.0, ambalo lilikuwa bado halijapatikana katika hazina za kawaida wakati wa kuandika mwongozo. Utahitaji kusakinisha kutoka chanzo asili. Lakini kwanza, angalia ikiwa umekutana na masharti muhimu ya kupakua na kukusanya programu.
sudo yum install gcc pcre-devel tar make -y
Pakua msimbo wa chanzo kwa kutumia amri iliyo hapa chini. Unaweza kuangalia ikiwa kuna toleo jipya zaidi linalopatikana
wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz
Mara tu upakuaji utakapokamilika, toa faili kwa kutumia amri hapa chini:
tar xzvf ~/haproxy.tar.gz -C ~/
Nenda kwenye saraka ya chanzo ambayo haijapakiwa:
cd ~/haproxy-2.0.7
Kisha kusanya programu ya mfumo wako:
make TARGET=linux-glibc
Na mwishowe, sasisha HAProxy yenyewe:
sudo make install
HAProxy sasa imesakinishwa, lakini inahitaji upotoshaji wa ziada ili kuifanya ifanye kazi. Hebu tuendelee kusanidi programu na huduma hapa chini.
Kuanzisha HAProxy kwa seva yako
Sasa ongeza saraka na faili zifuatazo za takwimu kwa maingizo ya HAProxy:
sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats
Unda kiunga cha mfano cha jozi ili uweze kutekeleza maagizo ya HAProxy kama mtumiaji wa kawaida:
sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
Ikiwa unataka kuongeza proksi kwenye mfumo wako kama huduma, nakili faili ya haproxy.init kutoka kwa mifano hadi saraka yako ya /etc/init.d. Hariri ruhusa za faili ili hati iendeshe, kisha uanze tena daemon ya 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
Pia unahitaji kuruhusu huduma kuanza upya kiotomatiki mfumo unapoanza:
sudo chkconfig haproxy on
Kwa urahisi, inashauriwa pia kuongeza mtumiaji mpya ili kuendesha HAProxy:
sudo useradd -r haproxy
Baada ya hayo, unaweza kuangalia nambari ya toleo iliyosanikishwa tena kwa kutumia amri ifuatayo:
haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/
Kwa upande wetu, toleo linapaswa kuwa 2.0.7, kama inavyoonyeshwa kwenye pato la mfano hapo juu.
Hatimaye, ngome chaguo-msingi katika CentOS 8 ni kizuizi kwa mradi huu. Tumia amri zifuatazo kuruhusu huduma zinazohitajika na kuweka upya ngome:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload
Pakia Mizania Mipangilio
Kuanzisha HAProxy ni mchakato rahisi. Kimsingi, unachohitaji kufanya ni kumwambia HAProxy ni miunganisho gani inapaswa kusikiliza na ni wapi inapaswa kuwasilisha.
Hii inafanywa kwa kuunda faili ya usanidi /etc/haproxy/haproxy.cfg na mipangilio ya kufafanua. Unaweza kusoma kuhusu chaguzi za usanidi wa HAProxy
Kusawazisha mzigo kwenye safu ya usafirishaji (safu ya 4)
Wacha tuanze na usanidi wa kimsingi. Unda faili mpya ya usanidi, kwa mfano kutumia vi na amri hapa chini:
sudo vi /etc/haproxy/haproxy.cfg
Ongeza sehemu zifuatazo kwenye faili. Badilisha server_name nini kinapaswa kuita seva zako kwenye ukurasa wa takwimu, na faragha_ip - anwani za IP za kibinafsi za seva ambazo unataka kuelekeza trafiki ya wavuti. Unaweza kuangalia anwani za IP za kibinafsi
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
Hii inafafanua kikisawazisha cha upakiaji wa safu ya uchukuzi (safu ya 4) kwa jina la nje la http_front kusikiliza kwenye bandari 80, ambayo kisha hupeleka trafiki kwa mandhari-msingi ya nyuma inayoitwa http_back. Takwimu za ziada /haproxy?stats huunganisha ukurasa wa takwimu kwa anwani maalum.
Algorithms mbalimbali za kusawazisha mzigo.
Kubainisha seva katika sehemu ya nyuma huruhusu HAProxy kutumia seva hizi kwa kusawazisha upakiaji kulingana na algoriti ya robini ya pande zote inapowezekana.
Algorithms ya kusawazisha hutumiwa kubainisha ni seva gani katika mazingira ya nyuma kila muunganisho unapitishwa. Hapa kuna baadhi ya chaguzi muhimu:
- Roundrobin: Kila seva hutumiwa kwa zamu kulingana na uzito wake. Hii ndiyo algoriti laini na ya haki zaidi wakati wakati wa usindikaji wa seva unasalia kusambazwa sawasawa. Kanuni hii inabadilika, kuruhusu uzito wa seva kurekebishwa kwa kuruka.
- Leastconn: seva iliyo na viunganisho vichache zaidi imechaguliwa. Robin ya pande zote inafanywa kati ya seva zilizo na mzigo sawa. Kutumia algoriti hii kunapendekezwa kwa vipindi virefu kama vile LDAP, SQL, TSE, n.k., lakini haifai sana kwa vipindi vifupi kama vile HTTP.
- Kwanza: Seva ya kwanza iliyo na nafasi za uunganisho zinazopatikana hupokea muunganisho. Seva huchaguliwa kutoka nambari ya chini kabisa ya nambari hadi nambari ya juu zaidi, ambayo hubadilika kwa nafasi ya seva kwenye shamba. Mara seva inapofikia maxconn, seva inayofuata inatumiwa.
- chanzo: Anwani ya IP ya chanzo huharakishwa na kugawanywa kwa jumla ya uzito wa seva zinazoendesha ili kubaini ni seva gani itapokea ombi. Kwa njia hii, anwani ya IP ya mteja sawa itaenda kwa seva moja kila wakati, wakati seva zinabaki sawa.
Kuweka usawazishaji wa mzigo kwenye kiwango cha programu (safu ya 7)
Chaguo jingine linalopatikana ni kusanidi kusawazisha mzigo ili kuendeshwa kwenye safu ya programu (safu ya 7), ambayo ni muhimu wakati sehemu za programu yako ya wavuti ziko kwenye wapangishi tofauti. Hii inaweza kupatikana kwa kusukuma upitishaji wa muunganisho, kwa mfano na URL.
Fungua faili ya usanidi wa HAProxy kwa kutumia hariri ya maandishi:
sudo vi /etc/haproxy/haproxy.cfg
Kisha usanidi sehemu za mbele na za nyuma kama kwa mfano hapa chini:
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
Sehemu ya mbele inatangaza sheria ya ACL inayoitwa url_blog ambayo inatumika kwa miunganisho yote yenye njia zinazoanza na /blog. Use_backend inabainisha kuwa miunganisho inayolingana na hali ya url_blog inafaa kutumwa na mandharinyuma iitwayo blog_back, na maombi mengine yote yanashughulikiwa na mandharinyuma chaguomsingi.
Kwa upande wa nyuma, usanidi huanzisha vikundi viwili vya seva: http_back, kama hapo awali, na mpya inayoitwa blog_back, ambayo hushughulikia miunganisho kwa example.com/blog.
Baada ya kubadilisha mipangilio, hifadhi faili na uanze tena HAProxy kwa kutumia amri ifuatayo:
sudo systemctl restart haproxy
Ikiwa unapokea maonyo yoyote au ujumbe wa hitilafu wakati wa kuanzisha, angalia usanidi wako kwao na uhakikishe kuwa umeunda faili na folda zote muhimu, kisha ujaribu kuanzisha upya tena.
Kujaribu usanidi
Mara baada ya HAProxy kusanidiwa na kufanya kazi, fungua anwani ya IP ya umma ya seva ya kusawazisha mzigo kwenye kivinjari na uangalie ikiwa umeunganishwa kwa nyuma kwa usahihi. Kigezo cha uri cha takwimu katika usanidi huunda ukurasa wa takwimu kwenye anwani iliyobainishwa.
http://load_balancer_public_ip/haproxy?stats
Unapopakia ukurasa wa takwimu, ikiwa seva zako zote zinaonyesha kijani, basi usanidi ulifanikiwa!
Ukurasa wa takwimu una taarifa muhimu za kufuatilia wapangishi wako wa wavuti, ikijumuisha muda wa juu/chini na idadi ya vipindi. Ikiwa seva imewekwa alama nyekundu, hakikisha kuwa seva imewashwa na unaweza kuipiga kutoka kwa mashine ya kusawazisha mzigo.
Ikiwa kisawazisha mzigo wako hakijibu, hakikisha miunganisho ya HTTP haijazuiwa na ngome. Pia hakikisha kuwa HAProxy inafanya kazi kwa kutumia amri hapa chini:
sudo systemctl status haproxy
Kulinda ukurasa wa takwimu na nenosiri
Walakini, ikiwa ukurasa wa takwimu umeorodheshwa tu kwenye mwisho wa mbele, basi uko wazi kwa kila mtu kuona, ambayo inaweza kuwa sio wazo nzuri. Badala yake, unaweza kuikabidhi nambari ya mlango maalum kwa kuongeza mfano ulio hapa chini hadi mwisho wa faili yako ya haproxy.cfg. Badilisha username ΠΈ nywila kwa kitu salama:
listen stats
bind *:8181
stats enable
stats uri /
stats realm Haproxy Statistics
stats auth username:password
Baada ya kuongeza kikundi kipya cha wasikilizaji, ondoa kiungo cha zamani cha takwimu kutoka kwa kikundi cha mstari wa mbele. Baada ya kumaliza, hifadhi faili na uanze upya HAProxy.
sudo systemctl restart haproxy
Kisha ufungue salio la mzigo tena na nambari mpya ya bandari na uingie na jina la mtumiaji na nenosiri ulilotaja kwenye faili ya usanidi.
http://load_balancer_public_ip:8181
Hakikisha seva zako zote bado zinaonyesha kijani na kisha ufungue tu IP ya kusawazisha mzigo bila nambari za mlango wowote kwenye kivinjari chako.
http://load_balancer_public_ip/
Ikiwa una angalau baadhi ya kurasa za kutua kwenye seva zako za mwisho-mwisho, utagundua kuwa kila wakati unapopakia upya ukurasa unapata jibu kutoka kwa seva pangishi tofauti. Unaweza kujaribu algoriti tofauti za kusawazisha katika sehemu ya usanidi au uangalie
Hitimisho: Kisawazisha cha Mzigo wa HAProxy
Hongera kwa kufanikiwa kusanidi kisawazishi chako cha HAProxy! Hata ukiwa na usanidi wa kimsingi wa kusawazisha mzigo, unaweza kuboresha kwa kiasi kikubwa utendakazi na upatikanaji wa programu yako ya wavuti. Mwongozo huu ni utangulizi tu wa kusawazisha upakiaji na HAProxy, ambayo ina uwezo wa zaidi ya kile kinachoweza kufunikwa katika mwongozo wa usanidi wa haraka. Tunapendekeza ujaribu na usanidi tofauti ukitumia
Kwa kutumia seva pangishi nyingi ili kulinda huduma yako ya wavuti kwa kichwa, kiweka usawazishaji chenyewe bado kinaweza kuwasilisha hali ya kutofaulu. Unaweza kuboresha zaidi upatikanaji wa juu kwa kusakinisha IP inayoelea kati ya visawazisha vingi vya mizigo. Unaweza kujua zaidi kuhusu hili katika yetu
Zaidi kuhusu kozi
Chanzo: mapenzi.com