HAProxy Load Balanceri installimine CentOS-i

Artikli tõlge valmis kursuse alguse eelõhtul Linuxi administraator. Virtualiseerimine ja klasterdamine»

HAProxy Load Balanceri installimine CentOS-i

Koormuse tasakaalustamine on levinud lahendus veebirakenduste skaleerimiseks mitme hosti vahel, pakkudes samal ajal kasutajatele teenusele ühte juurdepääsupunkti. HAProxy on üks populaarsemaid avatud lähtekoodiga koormuse tasakaalustamise tarkvara, mis pakub ka kõrget kättesaadavust ja puhverserveri funktsioone.

HAProxy eesmärk on optimeerida ressursside kasutamist, maksimeerida läbilaskevõimet, minimeerida reageerimisaega ja vältida ühe ressursi ülekoormamist. Seda saab installida mitmesugustele Linuxi distributsioonidele, nagu CentOS 8, millele selles juhendis keskendume, samuti süsteemidesse Debian 8 и Ubuntu 16.

HAProxy Load Balanceri installimine CentOS-i

HAProxy sobib eriti suure liiklusega veebisaitidele ja seetõttu kasutatakse seda sageli mitme serveriga veebiteenuste konfiguratsioonide töökindluse ja jõudluse parandamiseks. Selles juhendis kirjeldatakse samme HAProxy seadistamiseks CentOS 8 pilvehosti koormuse tasakaalustajana, mis seejärel suunab liikluse teie veebiserveritesse.

Parimate tulemuste saavutamiseks peaks teil olema vähemalt kaks veebiserverit ja koormuse tasakaalustamise server. Veebiserverites peavad töötama vähemalt põhiveebiteenus, nagu nginx või httpd, et kontrollida nende vahelist koormuse tasakaalustamist.

HAProxy installimine operatsioonisüsteemi CentOS 8

Kuna HAProxy on kiiresti arenev avatud lähtekoodiga rakendus, ei pruugi standardsetes CentOS-i hoidlates saadaval olev distributsioon olla uusim versioon. Uusima versiooni leidmiseks käivitage järgmine käsk:

sudo yum info haproxy

HAProxy pakub alati valida kolme stabiilse versiooni vahel: kaks kõige värskemat toetatud versiooni ja kolmas, vanem versioon, mis saab endiselt olulisi värskendusi. Saate alati kontrollida HAProxy veebisaidil loetletud uusimat stabiilset versiooni ja seejärel otsustada, millise versiooniga soovite töötada.

Selles juhendis installime uusima stabiilse versiooni 2.0, mis ei olnud selle kirjutamise ajal veel standardhoidlates saadaval. Peate selle installima algallikast. Kuid kõigepealt kontrollige, kas olete täitnud programmi allalaadimiseks ja koostamiseks vajalikud tingimused.

sudo yum install gcc pcre-devel tar make -y

Laadige alloleva käsu abil alla lähtekood. Saate kontrollida, kas uuem versioon on saadaval aadressil HAProxy allalaadimisleht.

wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz

Kui allalaadimine on lõppenud, ekstraktige failid alloleva käsu abil:

tar xzvf ~/haproxy.tar.gz -C ~/

Vahetage lahti pakkimata lähtekataloogi:

cd ~/haproxy-2.0.7

Seejärel kompileerige oma süsteemi jaoks programm:

make TARGET=linux-glibc

Ja lõpuks installige HAProxy ise:

sudo make install

Nüüd on HAProxy installitud, kuid selle toimimiseks on vaja täiendavaid manipuleerimisi. Jätkame alloleva tarkvara ja teenuste seadistamist.

HAProxy seadistamine teie serveri jaoks

Nüüd lisage HAProxy kirjete jaoks järgmised kataloogid ja statistikafail:

sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy 
sudo touch /var/lib/haproxy/stats

Looge kahendfailide jaoks sümboolne link, et saaksite HAProxy käske tavakasutajana käivitada:

sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

Kui soovite puhverserveri oma süsteemi teenusena lisada, kopeerige näidete hulgast fail haproxy.init oma /etc/init.d kataloogi. Muutke faili õigusi skripti käitamiseks, seejärel laadige süsteemideemon uuesti:

sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload

Samuti peate lubama teenusel süsteemi käivitamisel automaatselt taaskäivitada:

sudo chkconfig haproxy on

Mugavuse huvides on HAProxy käitamiseks soovitatav lisada ka uus kasutaja:

sudo useradd -r haproxy

Pärast seda saate installitud versiooni numbrit uuesti kontrollida järgmise käsuga:

haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/

Meie puhul peaks versioon olema 2.0.7, nagu on näidatud ülaltoodud näidisväljundis.

Lõpuks on CentOS 8 vaiketulemüür selle projekti jaoks üsna piirav. Kasutage vajalike teenuste lubamiseks ja tulemüüri lähtestamiseks järgmisi käske:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload

Koormuse tasakaalustaja seadistamine

HAProxy seadistamine on üsna lihtne protsess. Põhimõtteliselt peate vaid HAProxyle ütlema, milliseid ühendusi see peaks kuulama ja kuhu need edastada.

Selleks luuakse seadistustega konfiguratsioonifail /etc/haproxy/haproxy.cfg. Saate lugeda HAProxy konfiguratsioonivalikute kohta dokumentatsiooni lehelkui soovite selle kohta rohkem teada saada.

Koormuse tasakaalustamine transpordikihis (kiht 4)

Alustame põhiseadega. Looge uus konfiguratsioonifail, näiteks kasutades vi alloleva käsuga:

sudo vi /etc/haproxy/haproxy.cfg

Lisage faili järgmised jaotised. Asenda server_nimi see, mis peaks statistikalehel teie serveritele helistama, ja privaatne_ip - serverite privaatsed IP-aadressid, kuhu soovite veebiliiklust suunata. Saate kontrollida privaatseid IP-aadresse UpCloudi juhtpaneelil ja vahekaardil Eravõrk menüüs võrk.

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

See määratleb transpordikihi koormuse tasakaalustaja (kiht 4), mille välisnimetus on http_front kuulamine pordis 80, mis seejärel suunab liikluse vaikimisi taustaprogrammi nimega http_back. Täiendav statistika /haproxy?stats ühendab statistikalehe määratud aadressiga.

Erinevad koormuse tasakaalustamise algoritmid.

Serverite määramine taustaprogrammi jaotises võimaldab HAProxyl võimaluse korral kasutada neid servereid koormuse tasakaalustamiseks vastavalt ringipõhisele algoritmile.

Tasakaalustusalgoritme kasutatakse selleks, et määrata, millisesse taustaserverisse iga ühendus saadetakse. Siin on mõned kasulikud valikud.

  • Rounddrobin: iga serverit kasutatakse kordamööda vastavalt selle kaalule. See on kõige sujuvam ja õiglasem algoritm, kui serverite töötlemisaeg on ühtlaselt jaotunud. See algoritm on dünaamiline, mis võimaldab teil käigu pealt serveri kaalu reguleerida.
  • Leastconn: valitakse kõige vähem ühendusi omav server. Round robin viiakse läbi sama koormusega serverite vahel. Selle algoritmi kasutamine on soovitatav pikkade seansside jaoks, nagu LDAP, SQL, TSE jne, kuid mitte eriti sobiv lühikeste seansside jaoks, nagu HTTP.
  • Esiteks: esimene saadaolevate ühenduspesadega server võtab ühenduse vastu. Serverid valitakse madalaimast numbrilisest ID-st kõrgeimani, mis vaikimisi vastab serveri asukohale farmis. Kui server saavutab maxconn väärtuse, kasutatakse järgmist serverit.
  • Allikas: Lähte-IP-aadress räsitakse ja jagatakse töötavate serverite kogumassiga, et teha kindlaks, milline server päringu vastu võtab. Seega läheb sama kliendi IP-aadress alati samasse serverisse, samas kui serverid jäävad muutumatuks.

Koormuse tasakaalustamise konfigureerimine rakenduskihis (kiht 7)

Teine saadaolev võimalus on konfigureerida koormuse tasakaalustaja töötama rakenduse kihis (kiht 7), mis on kasulik, kui teie veebirakenduse osad asuvad erinevatel hostidel. Seda saab saavutada ühenduse edastamise piiramisega, näiteks URL-i kaudu.

Avage HAProxy konfiguratsioonifail tekstiredaktoriga:

sudo vi /etc/haproxy/haproxy.cfg

Seejärel seadistage esi- ja tagaosa segmendid vastavalt allolevale näitele:

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

Esiliides deklareerib ACL-i reegli nimega url_blog, mis kehtib kõigi ühenduste kohta, mille teed algavad /blog. Use_backend määrab, et url_blogi tingimusele vastavaid ühendusi peaks teenindama taustaprogramm nimega blog_back ja kõiki muid päringuid käsitleb vaiketaustaprogramm.

Tagaosas seadistab konfiguratsioon kaks serverirühma: http_back, nagu varemgi, ja uus, nimega blog_back, mis haldab ühendusi saidiga example.com/blog.

Pärast sätete muutmist salvestage fail ja taaskäivitage HAProxy järgmise käsuga:

sudo systemctl restart haproxy

Kui saate käivitamisel hoiatusi või tõrkeid, kontrollige konfiguratsiooni ja veenduge, et olete loonud kõik vajalikud failid ja kaustad, ning proovige seejärel uuesti taaskäivitada.

Seadistuse testimine

Kui HAProxy on konfigureeritud ja töötab, avage brauseris koormuse tasakaalustaja serveri avalik IP-aadress ja kontrollige, kas olete taustaprogrammiga õigesti ühendatud. Konfiguratsioonis olev stats uri parameeter loob määratud aadressil statistikalehe.

http://load_balancer_public_ip/haproxy?stats

Kui laadite statistikalehe ja kõik teie serverid on rohelised, siis seadistamine õnnestus!

HAProxy Load Balanceri installimine CentOS-i

Statistika leht sisaldab kasulikku teavet teie veebihostide jälgimiseks, sealhulgas üles- ja allakäiguaega ning seansside arvu. Kui server on punaselt märgitud, veenduge, et server on üleval ja et saate seda pingi koormuse tasakaalustaja kaudu.

Kui teie koormuse tasakaalustaja ei reageeri, veenduge, et tulemüür ei blokeeri HTTP-ühendusi. Veenduge ka, et HAProxy töötab järgmise käsuga:

sudo systemctl status haproxy

Statistikalehe kaitsmine parooliga

Kui aga statistikaleht on lihtsalt esiküljes loetletud, on see avalikkusele avatud, mis ei pruugi olla hea mõte. Selle asemel saate sellele määrata oma pordi numbri, lisades faili haproxy.cfg lõppu alloleva näite. Asenda kasutajanimi и parool millegi turvalise juurde:

listen stats
   bind *:8181
   stats enable
   stats uri /
   stats realm Haproxy Statistics
   stats auth username:password

Pärast uue kuulajarühma lisamist eemaldage kasutajaliidese rühmast vana statistika uri viide. Kui olete lõpetanud, salvestage fail ja taaskäivitage HAProxy.

sudo systemctl restart haproxy

Seejärel avage koormuse tasakaalustaja uuesti uue pordi numbriga ja logige sisse konfiguratsioonifailis määratud kasutajanime ja parooliga.

http://load_balancer_public_ip:8181

Veenduge, et kõik teie serverid oleksid endiselt rohelised, ja seejärel avage ainult koormuse tasakaalustaja IP ilma pordinumbriteta brauseris.

http://load_balancer_public_ip/

Kui teie siseserverites on vähemalt mõned sihtlehed, märkate, et iga kord, kui lehe uuesti laadite, saate vastuse erinevalt hostilt. Saate proovida erinevaid tasakaalustusalgoritme seadistuste jaotises või vt täielik dokumentatsioon.

Järeldus: HAProxy koormuse tasakaalustaja

Õnnitleme oma HAProxy koormuse tasakaalustaja eduka seadistamise puhul! Isegi põhilise koormuse tasakaalustamise seadistusega saate oma veebirakenduse jõudlust ja saadavust oluliselt parandada. See juhend on vaid sissejuhatus koormuse tasakaalustamisse HAProxyga, mis on võimeline palju enamaks, kui seda saab kirjeldada kiirhäälestusjuhendis. Soovitame katsetada erinevate konfiguratsioonidega ulatuslik dokumentatsioonHAProxy jaoks saadaval ja seejärel alustage oma tootmiskeskkonna koormuse tasakaalustamise planeerimist.

Kui kasutate oma veebiteenuse kaitseks mitut hosti, võib koormuse tasakaalustaja ise siiski olla tõrkepunkt. Kõrget kättesaadavust saate veelgi parandada, seadistades mitme koormuse tasakaalustaja vahel ujuva IP-aadressi. Selle kohta saate lisateavet meie lehelt artikkel ujuvate IP-aadresside kohta UpCloudis.

Kursuse kohta lähemalt Linuxi administraator. Virtualiseerimine ja klasterdamine»***

Allikas: www.habr.com

Lisa kommentaar