Þýðing á greininni var unnin í aðdraganda námskeiðsins
Álagsjöfnun er algeng lausn til að stækka vefforrit lárétt yfir marga gestgjafa á meðan að veita notendum einn aðgangsstað að þjónustunni.
HAProxy leitast við að hámarka auðlindanotkun, hámarka afköst, lágmarka viðbragðstíma og forðast að ofhlaða hvers kyns auðlind. Það er hægt að setja það upp á ýmsum Linux dreifingum, svo sem CentOS 8, sem við munum leggja áherslu á í þessari handbók, sem og kerfi
HAProxy hentar sérstaklega vel fyrir vefsíður með mjög mikla umferð og er því oft notað til að bæta áreiðanleika og afköst margmiðlara vefþjónustustillinga. Þessi handbók útlistar skrefin til að setja upp HAProxy sem álagsjafnara á CentOS 8 skýjagestgjafa, sem síðan beinir umferð til vefþjónanna þinna.
Sem forsenda fyrir besta árangri ættir þú að hafa að minnsta kosti tvo vefþjóna og hleðslujöfnunarþjón. Vefþjónar verða að keyra að minnsta kosti grunnvefþjónustu eins og nginx eða httpd til að prófa álagsjafnvægi á milli þeirra.
Að setja upp HAProxy á CentOS 8
Vegna þess að HAProxy er opinn uppspretta forrit í örri þróun, gæti dreifingin í boði fyrir þig í stöðluðu CentOS geymslunum ekki verið nýjasta útgáfan. Til að komast að núverandi útgáfu skaltu keyra eftirfarandi skipun:
sudo yum info haproxy
HAProxy býður alltaf upp á þrjár stöðugar útgáfur til að velja úr: tvær nýjustu studdu útgáfurnar og þriðja, eldri útgáfan sem er enn að fá mikilvægar uppfærslur. Þú getur alltaf athugað nýjustu stöðugu útgáfuna sem skráð er á heimasíðu HAProxy og síðan ákveðið hvaða útgáfu þú vilt vinna með.
Í þessari handbók munum við setja upp nýjustu stöðugu útgáfuna 2.0, sem var ekki enn fáanleg í stöðluðum geymslum þegar handbókin var skrifuð. Þú verður að setja það upp frá upprunalegum uppruna. En fyrst skaltu athuga hvort þú hafir uppfyllt nauðsynleg skilyrði til að hlaða niður og setja saman forritið.
sudo yum install gcc pcre-devel tar make -y
Sæktu frumkóðann með því að nota skipunina hér að neðan. Þú getur athugað hvort það sé til nýrri útgáfa á
wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz
Þegar niðurhalinu er lokið skaltu draga út skrárnar með skipuninni hér að neðan:
tar xzvf ~/haproxy.tar.gz -C ~/
Farðu í ópakkaða upprunaskrá:
cd ~/haproxy-2.0.7
Settu síðan saman forritið fyrir kerfið þitt:
make TARGET=linux-glibc
Og að lokum skaltu setja upp HAProxy sjálft:
sudo make install
HAProxy er nú uppsett, en það krefst nokkurra viðbótaraðgerða til að það virki. Höldum áfram að setja upp hugbúnaðinn og þjónustuna hér að neðan.
Að setja upp HAProxy fyrir netþjóninn þinn
Bættu nú við eftirfarandi möppum og tölfræðiskrá fyrir HAProxy færslurnar:
sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats
Búðu til táknrænan hlekk fyrir tvöfaldana svo þú getir keyrt HAProxy skipanir sem venjulegur notandi:
sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
Ef þú vilt bæta proxy við kerfið þitt sem þjónustu, afritaðu haproxy.init skrána úr dæmum í /etc/init.d möppuna þína. Breyttu skráarheimildunum þannig að handritið keyri og endurræstu síðan systemd púkann:
sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload
Þú þarft einnig að leyfa þjónustunni að endurræsa sjálfkrafa þegar kerfið ræsir:
sudo chkconfig haproxy on
Til hægðarauka er einnig mælt með því að bæta við nýjum notanda til að keyra HAProxy:
sudo useradd -r haproxy
Eftir þetta geturðu athugað uppsetta útgáfunúmerið aftur með því að nota eftirfarandi skipun:
haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/
Í okkar tilviki ætti útgáfan að vera 2.0.7, eins og sýnt er í dæminu hér að ofan.
Að lokum er sjálfgefinn eldveggur í CentOS 8 nokkuð takmarkandi fyrir þetta verkefni. Notaðu eftirfarandi skipanir til að leyfa nauðsynlega þjónustu og endurstilla eldvegginn:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload
Uppsetning álagsjafnvægis
Að setja upp HAProxy er frekar einfalt ferli. Í meginatriðum, allt sem þú þarft að gera er að segja HAProxy hvaða tengingar það ætti að hlusta á og hvar það ætti að miðla þeim.
Þetta er gert með því að búa til stillingarskrá /etc/haproxy/haproxy.cfg með skilgreindum stillingum. Þú getur lesið um HAProxy stillingarvalkosti
Álagsjöfnun við flutningslag (lag 4)
Byrjum á grunnuppsetningunni. Búðu til nýja stillingarskrá, til dæmis með því að nota vi með skipuninni hér að neðan:
sudo vi /etc/haproxy/haproxy.cfg
Bættu eftirfarandi hlutum við skrána. Skipta um netþjóni hvað ætti að kalla netþjónana þína á tölfræðisíðunni, og einka_ip — einka IP tölur netþjónanna sem þú vilt beina vefumferð á. Þú getur athugað einka IP tölur
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
Þetta skilgreinir álagsjafnvægi fyrir flutningslag (lag 4) sem heitir að utan http_front hlustun á höfn 80, sem sendir síðan umferð áfram í sjálfgefna bakenda sem heitir http_back. Viðbótartölfræði /haproxy?stats tengir tölfræðisíðuna við tilgreint heimilisfang.
Ýmis reiknirit til að jafna álag.
Að tilgreina netþjóna í bakendahlutanum gerir HAProxy kleift að nota þessa netþjóna fyrir álagsjafnvægi í samræmi við hringlaga reiknirit þegar mögulegt er.
Jafnvægisalgrím eru notuð til að ákvarða til hvaða netþjóns í bakenda hver tenging er send. Hér eru nokkrir af gagnlegum valkostum:
- Rounddrobin: Hver miðlari er notaður eftir þyngd hans. Þetta er sléttasta og sanngjarnasta reikniritið þegar vinnslutími netþjónanna helst jafnt dreift. Þetta reiknirit er kraftmikið, sem gerir kleift að stilla þyngd netþjónsins á flugi.
- Leastconn: þjónninn með fæstar tengingar er valinn. Round robin er framkvæmt á milli netþjóna með sama álag. Mælt er með því að nota þetta reiknirit fyrir langar lotur eins og LDAP, SQL, TSE o.s.frv., en það er ekki mjög hentugur fyrir stuttar lotur eins og HTTP.
- Fyrst: Fyrsti netþjónninn með tiltæka tengipláss tekur á móti tengingunni. Netþjónar eru valdir úr lægsta tölulega auðkenninu upp í það hæsta, sem er sjálfgefið í stöðu miðlarans í bænum. Þegar þjónn nær maxconn er næsti þjónn notaður.
- Heimild: Uppruna IP vistfangið er hashed og deilt með heildarþyngd keyrandi netþjóna til að ákvarða hvaða netþjónn mun fá beiðnina. Þannig mun sama IP-tala viðskiptavinarins alltaf fara á sama netþjóninn á meðan netþjónarnir eru þeir sömu.
Uppsetning álagsjafnvægis á umsóknarstigi (lag 7)
Annar tiltækur valkostur er að stilla álagsjafnvægi til að keyra á forritalagið (lag 7), sem er gagnlegt þegar hlutar af vefforritinu þínu eru staðsettir á mismunandi vélum. Þetta er hægt að ná með því að stöðva sendingu tengingarinnar, til dæmis með vefslóð.
Opnaðu HAProxy stillingarskrána með því að nota textaritil:
sudo vi /etc/haproxy/haproxy.cfg
Stilltu síðan framenda- og bakendahlutana eins og á dæminu hér að neðan:
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
Framendinn lýsir yfir ACL reglu sem kallast url_blog sem á við um allar tengingar við slóðir sem byrja á /blog. Use_backend tilgreinir að tengingar sem passa við url_blog skilyrðið ættu að vera þjónað af bakenda sem heitir blog_back og allar aðrar beiðnir eru meðhöndlaðar af sjálfgefnum bakenda.
Á bakhliðinni setur uppsetningin upp tvo hópa netþjóna: http_back, eins og áður, og nýjan sem heitir blog_back, sem sér um tengingar við example.com/blog.
Eftir að stillingunum hefur verið breytt skaltu vista skrána og endurræsa HAProxy með eftirfarandi skipun:
sudo systemctl restart haproxy
Ef þú færð einhverjar viðvaranir eða villuboð við ræsingu skaltu athuga stillingarnar þínar fyrir þær og ganga úr skugga um að þú hafir búið til allar nauðsynlegar skrár og möppur, reyndu síðan að endurræsa aftur.
Er að prófa uppsetninguna
Þegar HAProxy hefur verið stillt og keyrt skaltu opna opinbera IP-tölu álagsjafnvægisþjónsins í vafra og athuga hvort þú sért tengdur við bakendann á réttan hátt. Stats uri færibreytan í uppsetningunni býr til tölfræðisíðu á tilgreindu heimilisfangi.
http://load_balancer_public_ip/haproxy?stats
Þegar þú hleður upp tölfræðisíðunni, ef allir netþjónarnir þínir sýna grænt, þá tókst uppsetningin!
Tölfræðisíðan inniheldur nokkrar gagnlegar upplýsingar til að fylgjast með vefþjónum þínum, þar á meðal upp/niður tíma og fjölda lota. Ef þjónninn er rauður merktur skaltu ganga úr skugga um að kveikt sé á þjóninum og að þú getir pingað hann frá álagsjafnvægisvélinni.
Ef álagsjafnarinn þinn svarar ekki skaltu ganga úr skugga um að eldvegg sé ekki læst á HTTP-tengingar. Gakktu úr skugga um að HAProxy virki með því að nota skipunina hér að neðan:
sudo systemctl status haproxy
Að vernda tölfræðisíðuna með lykilorði
Hins vegar, ef tölfræðisíðan er einfaldlega skráð á framendanum, þá er hún opin fyrir alla að sjá, sem er kannski ekki góð hugmynd. Þess í stað geturðu úthlutað því sérsniðnu gáttarnúmeri með því að bæta dæminu hér að neðan í lok haproxy.cfg skráarinnar. Skipta um notandanafn и lykilorð fyrir eitthvað öruggt:
listen stats
bind *:8181
stats enable
stats uri /
stats realm Haproxy Statistics
stats auth username:password
Eftir að nýr hlustendahópur hefur verið bætt við skaltu fjarlægja gamla stats uri hlekkinn úr framendahópnum. Þegar því er lokið skaltu vista skrána og endurræsa HAProxy.
sudo systemctl restart haproxy
Opnaðu síðan hleðslujafnarann aftur með nýja gáttarnúmerinu og skráðu þig inn með notandanafninu og lykilorðinu sem þú tilgreindir í stillingarskránni.
http://load_balancer_public_ip:8181
Gakktu úr skugga um að allir netþjónarnir þínir séu enn grænir og opnaðu síðan bara hleðslujafnaðar IP án gáttanúmera í vafranum þínum.
http://load_balancer_public_ip/
Ef þú ert með að minnsta kosti ýmsar áfangasíður á bakþjónum þínum, muntu taka eftir því að í hvert skipti sem þú endurhleður síðuna færðu svar frá öðrum gestgjafa. Þú getur prófað mismunandi jafnvægisreiknirit í stillingarhlutanum eða skoðað
Niðurstaða: HAProxy Load Balancer
Til hamingju með að hafa sett upp HAProxy hleðslujafnara! Jafnvel með grunnuppsetningu álagsjafnvægis geturðu bætt árangur og aðgengi vefforritsins þíns verulega. Þessi handbók er aðeins kynning á álagsjafnvægi með HAProxy, sem er fær um miklu meira en það sem hægt er að fjalla um í flýtiuppsetningarhandbókinni. Við mælum með því að gera tilraunir með mismunandi stillingar með því að nota
Með því að nota marga gestgjafa til að vernda vefþjónustuna þína með loftrými, gæti álagsjafnarinn sjálfur samt verið bilunarpunktur. Þú getur bætt mikið framboð enn frekar með því að setja upp fljótandi IP á milli margra álagsjafnara. Þú getur fundið meira um þetta í okkar
Nánar um námskeiðið
Heimild: www.habr.com