Paratowyd y cyfieithiad o'r erthygl ar y noson cyn dechrau'r cwrs
Mae cydbwyso llwyth yn ateb cyffredin ar gyfer graddio cymwysiadau gwe yn llorweddol ar draws gwesteiwyr lluosog tra'n darparu un pwynt mynediad i'r gwasanaeth i ddefnyddwyr.
Mae HAProxy yn ymdrechu i wneud y defnydd gorau o adnoddau, gwneud y mwyaf o fewnbwn, lleihau amser ymateb, ac osgoi gorlwytho unrhyw adnodd unigol. Gellir ei osod ar amrywiaeth o ddosbarthiadau Linux, megis CentOS 8, y byddwn yn canolbwyntio arno yn y canllaw hwn, yn ogystal â systemau
Mae HAProxy yn arbennig o addas ar gyfer gwefannau â thraffig uchel iawn ac felly fe'i defnyddir yn aml i wella dibynadwyedd a pherfformiad cyfluniadau gwasanaeth gwe aml-weinydd. Mae'r canllaw hwn yn amlinellu'r camau i sefydlu HAProxy fel cydbwysedd llwyth ar westeiwr cwmwl CentOS 8, sydd wedyn yn cyfeirio traffig i'ch gweinyddwyr gwe.
Fel rhagofyniad ar gyfer y canlyniadau gorau, dylai fod gennych o leiaf ddau weinydd gwe a gweinydd cydbwyso llwyth. Rhaid i weinyddion gwe fod yn rhedeg o leiaf gwasanaeth gwe sylfaenol fel nginx neu httpd er mwyn profi cydbwyso llwyth rhyngddynt.
Gosod HAProxy ar CentOS 8
Gan fod HAProxy yn gymhwysiad ffynhonnell agored sy'n datblygu'n gyflym, efallai nad y dosbarthiad sydd ar gael i chi yn ystorfeydd safonol CentOS yw'r fersiwn ddiweddaraf. I ddarganfod y fersiwn gyfredol, rhedeg y gorchymyn canlynol:
sudo yum info haproxy
Mae HAProxy bob amser yn darparu tair fersiwn sefydlog i ddewis ohonynt: y ddwy fersiwn a gefnogir fwyaf diweddar a thrydedd fersiwn hŷn sy'n dal i gael diweddariadau beirniadol. Gallwch chi bob amser wirio'r fersiwn sefydlog ddiweddaraf a restrir ar wefan HAProxy ac yna penderfynu pa fersiwn rydych chi am weithio gyda hi.
Yn y canllaw hwn, byddwn yn gosod y fersiwn sefydlog ddiweddaraf 2.0, nad oedd ar gael eto yn y storfeydd safonol ar adeg ysgrifennu'r canllaw. Bydd angen i chi ei osod o'r ffynhonnell wreiddiol. Ond yn gyntaf, gwiriwch a ydych wedi bodloni'r amodau angenrheidiol i lawrlwytho a llunio'r rhaglen.
sudo yum install gcc pcre-devel tar make -y
Dadlwythwch y cod ffynhonnell gan ddefnyddio'r gorchymyn isod. Gallwch wirio a oes fersiwn mwy diweddar ar gael ar
wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz
Unwaith y bydd y lawrlwythiad wedi'i gwblhau, tynnwch y ffeiliau gan ddefnyddio'r gorchymyn isod:
tar xzvf ~/haproxy.tar.gz -C ~/
Ewch i'r cyfeiriadur ffynhonnell heb ei bacio:
cd ~/haproxy-2.0.7
Yna lluniwch y rhaglen ar gyfer eich system:
make TARGET=linux-glibc
Ac yn olaf, gosod HAProxy ei hun:
sudo make install
Mae HAProxy bellach wedi'i osod, ond mae angen rhai triniaethau ychwanegol i wneud iddo weithio. Gadewch i ni barhau i sefydlu'r meddalwedd a'r gwasanaethau isod.
Sefydlu HAProxy ar gyfer eich gweinydd
Nawr ychwanegwch y cyfeiriaduron a'r ffeil ystadegau ganlynol ar gyfer y cofnodion HAProxy:
sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats
Creu dolen symbolaidd ar gyfer y binaries fel y gallwch redeg gorchmynion HAProxy fel defnyddiwr rheolaidd:
sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
Os ydych chi am ychwanegu dirprwy i'ch system fel gwasanaeth, copïwch y ffeil haproxy.init o enghreifftiau i'ch cyfeiriadur /etc/init.d. Golygu'r caniatadau ffeil fel y bydd y sgript yn rhedeg, ac yna ailgychwyn yr daemon 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
Mae angen i chi hefyd ganiatáu i'r gwasanaeth ailgychwyn yn awtomatig pan fydd y system yn cychwyn:
sudo chkconfig haproxy on
Er hwylustod, argymhellir hefyd ychwanegu defnyddiwr newydd i redeg HAProxy:
sudo useradd -r haproxy
Ar ôl hyn, gallwch wirio rhif y fersiwn wedi'i osod eto gan ddefnyddio'r gorchymyn canlynol:
haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/
Yn ein hachos ni, dylai'r fersiwn fod yn 2.0.7, fel y dangosir yn yr allbwn enghreifftiol uchod.
Yn olaf, mae'r wal dân ddiofyn yn CentOS 8 yn eithaf cyfyngol ar gyfer y prosiect hwn. Defnyddiwch y gorchmynion canlynol i ganiatáu gwasanaethau gofynnol ac ailosod y wal dân:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload
Gosod Balansiwr Llwyth
Mae sefydlu HAProxy yn broses eithaf syml. Yn y bôn, y cyfan sydd angen i chi ei wneud yw dweud wrth HAProxy pa gysylltiadau y dylai wrando amdanynt a ble y dylai eu trosglwyddo.
Gwneir hyn trwy greu ffeil ffurfweddu /etc/haproxy/haproxy.cfg gyda gosodiadau diffinio. Gallwch ddarllen am opsiynau cyfluniad HAProxy
Cydbwyso llwyth ar yr haen gludo (haen 4)
Gadewch i ni ddechrau gyda'r gosodiad sylfaenol. Creu ffeil ffurfweddu newydd, er enghraifft gan ddefnyddio vi gyda'r gorchymyn isod:
sudo vi /etc/haproxy/haproxy.cfg
Ychwanegwch yr adrannau canlynol i'r ffeil. Amnewid gweinydd_name beth ddylai alw eich gweinyddion ar y dudalen ystadegau, a preifat_ip — cyfeiriadau IP preifat y gweinyddion yr ydych am gyfeirio traffig gwe iddynt. Gallwch wirio cyfeiriadau IP preifat
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
Mae hyn yn diffinio cydbwysedd llwyth haen trafnidiaeth (haen 4) a enwir yn allanol wrando http_front ar borth 80, sydd wedyn yn anfon traffig ymlaen i ôl-ben diofyn o'r enw http_back. Mae ystadegau ychwanegol /haproxy?stats yn cysylltu'r dudalen ystadegau i'r cyfeiriad penodedig.
Algorithmau cydbwyso llwyth amrywiol.
Mae pennu gweinyddwyr yn yr adran backend yn caniatáu i HAProxy ddefnyddio'r gweinyddwyr hyn ar gyfer cydbwyso llwyth yn unol ag algorithm robin crwn pan fo modd.
Defnyddir algorithmau cydbwyso i benderfynu i ba weinydd yn yr ôl-ben y trosglwyddir pob cysylltiad. Dyma rai o'r opsiynau defnyddiol:
- Roundrobin: Defnyddir pob gweinydd yn ei dro yn ôl ei bwysau. Dyma'r algorithm llyfnaf a thecaf pan fo amser prosesu'r gweinyddwyr yn parhau i fod wedi'i ddosbarthu'n gyfartal. Mae'r algorithm hwn yn ddeinamig, gan ganiatáu i bwysau'r gweinydd gael ei addasu ar y hedfan.
- Lesconn: dewisir y gweinydd gyda'r nifer lleiaf o gysylltiadau. Mae robin crwn yn cael ei berfformio rhwng gweinyddwyr sydd â'r un llwyth. Argymhellir defnyddio'r algorithm hwn ar gyfer sesiynau hir fel LDAP, SQL, TSE, ac ati, ond nid yw'n addas iawn ar gyfer sesiynau byr fel HTTP.
- Yn gyntaf: Mae'r gweinydd cyntaf gyda slotiau cysylltiad sydd ar gael yn derbyn y cysylltiad. Mae gweinyddwyr yn cael eu dewis o'r ID rhifol isaf i'r uchaf, sy'n rhagosodedig i safle'r gweinydd yn y fferm. Unwaith y bydd gweinydd yn cyrraedd maxconn, defnyddir y gweinydd nesaf.
- ffynhonnell: Mae'r cyfeiriad IP ffynhonnell yn cael ei stwnsio a'i rannu â chyfanswm pwysau rhedeg gweinyddwyr i benderfynu pa weinydd fydd yn derbyn y cais. Fel hyn, bydd yr un cyfeiriad IP cleient bob amser yn mynd i'r un gweinydd, tra bod y gweinyddwyr yn aros yr un peth.
Sefydlu cydbwyso llwyth ar lefel y cais (haen 7)
Opsiwn arall sydd ar gael yw ffurfweddu cydbwysedd llwyth i redeg ar yr haen cymhwysiad (haen 7), sy'n ddefnyddiol pan fydd rhannau o'ch cymhwysiad gwe wedi'u lleoli ar wahanol westeion. Gellir cyflawni hyn trwy wthio trosglwyddiad y cysylltiad, er enghraifft trwy URL.
Agorwch y ffeil ffurfweddu HAProxy gan ddefnyddio golygydd testun:
sudo vi /etc/haproxy/haproxy.cfg
Yna ffurfweddwch y segmentau blaen a chefn yn unol â'r enghraifft isod:
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
Mae'r frontend yn datgan rheol ACL o'r enw url_blog sy'n berthnasol i bob cysylltiad â llwybrau sy'n dechrau gyda /blog. Mae Use_backend yn nodi y dylai cysylltiadau sy'n cyfateb i'r amod url_blog gael eu gwasanaethu gan ôl-wyneb o'r enw blog_back, ac ymdrinnir â phob cais arall gan y pen ôl rhagosodedig.
Ar ochr y pen ôl, mae'r ffurfweddiad yn sefydlu dau grŵp o weinyddion: http_back, fel o'r blaen, ac un newydd o'r enw blog_back, sy'n trin cysylltiadau â example.com/blog.
Ar ôl newid y gosodiadau, arbedwch y ffeil ac ailgychwyn HAProxy gan ddefnyddio'r gorchymyn canlynol:
sudo systemctl restart haproxy
Os byddwch yn derbyn unrhyw rybuddion neu negeseuon gwall wrth gychwyn, gwiriwch eich ffurfweddiad ar eu cyfer a gwnewch yn siŵr eich bod wedi creu'r holl ffeiliau a ffolderau angenrheidiol, yna ceisiwch ailgychwyn eto.
Profi'r gosodiad
Unwaith y bydd HAProxy wedi'i ffurfweddu a'i redeg, agorwch gyfeiriad IP cyhoeddus y gweinydd cydbwysedd llwyth mewn porwr a gwiriwch a ydych wedi'ch cysylltu â'r backend yn gywir. Mae'r paramedr stats uri yn y ffurfweddiad yn creu tudalen ystadegau yn y cyfeiriad penodedig.
http://load_balancer_public_ip/haproxy?stats
Pan fyddwch chi'n llwytho'r dudalen ystadegau, os yw'ch holl weinyddion yn dangos gwyrdd, yna roedd y gosodiad yn llwyddiannus!
Mae'r dudalen ystadegau yn cynnwys rhywfaint o wybodaeth ddefnyddiol ar gyfer olrhain eich gwesteiwyr gwe, gan gynnwys amser i fyny/lawr a nifer y sesiynau. Os yw'r gweinydd wedi'i farcio'n goch, gwnewch yn siŵr bod y gweinydd wedi'i droi ymlaen a'ch bod chi'n gallu ei binio o'r peiriant cydbwysedd llwyth.
Os nad yw'ch cydbwysydd llwyth yn ymateb, gwnewch yn siŵr nad yw cysylltiadau HTTP yn cael eu rhwystro gan wal dân. Hefyd gwnewch yn siŵr bod HAProxy yn gweithio gan ddefnyddio'r gorchymyn isod:
sudo systemctl status haproxy
Diogelu'r dudalen ystadegau gyda chyfrinair
Fodd bynnag, os yw'r dudalen ystadegau wedi'i rhestru'n syml ar y pen blaen, yna mae'n agored i bawb ei gweld, ac efallai nad yw hynny'n syniad da. Yn lle hynny, gallwch chi neilltuo rhif porthladd arferol iddo trwy ychwanegu'r enghraifft isod at ddiwedd eich ffeil haproxy.cfg. Amnewid enw defnyddiwr и cyfrinair am rywbeth diogel:
listen stats
bind *:8181
stats enable
stats uri /
stats realm Haproxy Statistics
stats auth username:password
Ar ôl ychwanegu grŵp gwrandawyr newydd, tynnwch yr hen ddolen stats uri o'r grŵp blaen. Ar ôl gorffen, arbedwch y ffeil ac ailgychwyn HAProxy.
sudo systemctl restart haproxy
Yna agorwch y balans llwyth eto gyda'r rhif porthladd newydd a mewngofnodwch gyda'r enw defnyddiwr a'r cyfrinair a nodwyd gennych yn y ffeil ffurfweddu.
http://load_balancer_public_ip:8181
Gwnewch yn siŵr bod eich holl weinyddion yn dal i ddangos gwyrdd ac yna agorwch yr IP cydbwysedd llwyth yn unig heb unrhyw rifau porthladd yn eich porwr.
http://load_balancer_public_ip/
Os oes gennych chi o leiaf rywfaint o amrywiaeth o dudalennau glanio ar eich gweinyddwyr pen ôl, byddwch chi'n sylwi bob tro y byddwch chi'n ail-lwytho'r dudalen y byddwch chi'n cael ymateb gan westeiwr gwahanol. Gallwch chi roi cynnig ar wahanol algorithmau cydbwyso yn yr adran ffurfweddu neu edrychwch allan
Casgliad: Cydbwysedd Llwyth HAProxy
Llongyfarchiadau ar sefydlu eich cydbwysedd llwyth HAProxy yn llwyddiannus! Hyd yn oed gyda gosodiad cydbwyso llwyth sylfaenol, gallwch wella perfformiad ac argaeledd eich cymhwysiad gwe yn sylweddol. Dim ond cyflwyniad i gydbwyso llwyth gyda HAProxy yw'r canllaw hwn, sy'n gallu llawer mwy na'r hyn y gellir ei gynnwys yn y canllaw gosod cyflym. Rydym yn argymell arbrofi gyda gwahanol ffurfweddiadau gan ddefnyddio
Trwy ddefnyddio gwesteiwyr lluosog i amddiffyn eich gwasanaeth gwe gyda gofod uwch, efallai y bydd y cydbwysedd llwyth ei hun yn dal i gyflwyno pwynt o fethiant. Gallwch wella argaeledd uchel ymhellach trwy osod IP symudol rhwng cydbwyswyr llwyth lluosog. Gallwch ddarganfod mwy am hyn yn ein
Mwy am y cwrs
Ffynhonnell: hab.com