Phetolelo ea sengoloa e lokisitsoe bosiung ba pele thupelo e qala
Load balancing ke tharollo e tloaelehileng bakeng sa ho lekola lits'ebetso tsa marang-rang ka mokhoa o otlolohileng ho baamoheli ba bangata ha o ntse o fa basebelisi sebaka se le seng sa ho fihlella ts'ebeletso.
HAProxy e ikitlaelletsa ho ntlafatsa tšebeliso ea lisebelisoa, ho eketsa ts'ebeliso ea lisebelisoa, ho fokotsa nako ea ho arabela, le ho qoba ho jarisa lisebelisoa leha e le life tsa motho ka mong. E ka kenngoa ho mefuta e fapaneng ea liphaello tsa Linux, joalo ka CentOS 8, eo re tla tsepamisa maikutlo ho eona ho tataiso ena, hammoho le litsamaiso.
HAProxy e loketse ka ho khetheha bakeng sa liwebsaete tse nang le sephethephethe se phahameng haholo 'me ka hona hangata e sebelisoa ho ntlafatsa botšepehi le ts'ebetso ea litlhophiso tsa litšebeletso tsa marang-rang tse ngata. Tataiso ena e hlalosa mehato ea ho theha HAProxy e le tekanyo ea mojaro ho moamoheli oa leru oa CentOS 8, ebe o tsamaisa sephethephethe ho li-server tsa hau tsa marang-rang.
E le ntho e hlokahalang bakeng sa liphetho tse ntle, o tlameha ho ba le bonyane li-server tse peli tsa marang-rang le seva ea ho leka-lekanya mojaro. Li-server li tlameha ho sebelisa bonyane lits'ebeletso tsa mantlha tsa webo joalo ka nginx kapa httpd ho leka ho leka-lekanya mojaro lipakeng tsa tsona.
Ho kenya HAProxy ho CentOS 8
Hobane HAProxy ke sesebelisoa sa mohloli o bulehileng o fetohang ka potlako, kabo e fumanehang ho uena sebakeng sa polokelo ea CentOS e kanna ea se be mofuta oa morao-rao. Ho tseba mofuta oa hajoale, tsamaisa taelo e latelang:
sudo yum info haproxy
HAProxy e lula e fana ka liphetolelo tse tharo tse tsitsitseng tseo u ka khethang ho tsona: liphetolelo tse peli tsa morao-rao tse tšehetsoeng le phetolelo ea boraro, ea khale e ntseng e fumana lisebelisoa tsa bohlokoa. U ka lula u sheba mofuta oa morao-rao o tsitsitseng o thathamisitsoeng ho websaeteng ea HAProxy ebe u etsa qeto ea hore na u batla ho sebetsa le mofuta ofe.
Tataisong ena, re tla be re kenya mofuta oa morao-rao o tsitsitseng oa 2.0, o neng o e-so fumanehe libakeng tsa polokelo tse tloaelehileng nakong ea ho ngola tataiso. U tla hloka ho e kenya ho tsoa mohloling oa pele. Empa pele, hlahloba hore na u fihletse maemo a hlokahalang ho jarolla le ho bokella lenaneo.
sudo yum install gcc pcre-devel tar make -y
Khoasolla khoutu ea mohloli u sebelisa taelo e ka tlase. U ka hlahloba hore na ho na le mofuta o mocha o fumanehang ho
wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz
Hang ha download e felile, ntša lifaele u sebelisa taelo e ka tlase:
tar xzvf ~/haproxy.tar.gz -C ~/
E-ea mohloling oa mohloli o sa pakiloeng:
cd ~/haproxy-2.0.7
Ebe u bokella lenaneo la sistimi ea hau:
make TARGET=linux-glibc
'Me qetellong, kenya HAProxy ka boeona:
sudo make install
HAProxy e se e kentsoe, empa e hloka lisebelisoa tse ling ho e etsa hore e sebetse. Ha re tsoeleng pele ho theha software le lits'ebeletso tse ka tlase.
Ho theha HAProxy bakeng sa seva sa hau
Joale eketsa li-directory le lipalo-palo tse latelang bakeng sa lipehelo tsa HAProxy:
sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats
Theha sehokelo sa tšoantšetso bakeng sa li-binaries e le hore u ka tsamaisa litaelo tsa HAProxy joalo ka mosebelisi oa kamehla:
sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
Haeba u batla ho kenya moemeli tsamaisong ea hau e le tšebeletso, kopitsa faele ea haproxy.init ho tloha mehlala ho ea ho /etc/init.d directory ea hau. Fetola litumello tsa faele e le hore script e tla sebetsa, ebe o qala daemon ea systemd hape:
sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload
U boetse u hloka ho lumella ts'ebeletso ho qala bocha ha sistimi e qala:
sudo chkconfig haproxy on
Bakeng sa boiketlo, ho boetse ho khothaletsoa ho kenyelletsa mosebelisi e mocha ho tsamaisa HAProxy:
sudo useradd -r haproxy
Kamora sena, o ka sheba nomoro ea mofuta o kentsoeng hape o sebelisa taelo e latelang:
haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/
Tabeng ea rona, phetolelo e lokela ho ba 2.0.7, joalokaha ho bontšitsoe mohlaleng o ka holimo.
Qetellong, firewall ea kamehla ho CentOS 8 e thibela morero ona haholo. Sebelisa litaelo tse latelang ho lumella litšebeletso tse hlokahalang le ho tsosolosa firewall:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload
Laola Balancer Setup
Ho theha HAProxy ke ts'ebetso e bonolo. Ha e le hantle, sohle seo u hlokang ho se etsa ke ho bolella HAProxy hore na e lokela ho mamela likhokahano life le hore na e lokela ho li fetisetsa hokae.
Sena se etsoa ka ho theha faele ea tlhophiso /etc/haproxy/haproxy.cfg ka ho hlalosa litlhophiso. U ka bala ka likhetho tsa tlhophiso ea HAProxy
Ho leka-lekanya mojaro karolong ea lipalangoang (lera 4)
Ha re qaleng ka ho seta motheo. Theha faele e ncha ea config, mohlala ho sebelisa vi ka taelo e ka tlase:
sudo vi /etc/haproxy/haproxy.cfg
Kenya likarolo tse latelang faeleng. Tlosa sebaka lebitso la seva_name se lokelang ho bitsa li-server tsa hau leqepheng la lipalo-palo, le private_ip - liaterese tsa poraefete tsa IP tsa li-server tseo u batlang ho lebisa sephethephethe sa marang-rang ho tsona. O ka sheba liaterese tsa IP tsa lekunutu
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
Sena se hlalosa sekhahla sa lipalangoang (lera 4) se bitsoang http_front ho mamela boema-kepeng ba 80, ebe se fetisetsa sephethephethe ho ea morao-rao e bitsoang http_back. Lipalopalo tse ling /haproxy?stats li hokahanya leqephe la lipalo-palo atereseng e boletsoeng.
Li-algorithms tse fapaneng tsa ho leka-lekanya mojaro.
Ho hlalosa li-server karolong ea backend ho lumella HAProxy ho sebelisa lisebelisoa tsena bakeng sa ho leka-lekanya mojaro ho latela algorithm e pota-potileng ha ho khoneha.
Li-algorithms tsa ho leka-lekanya li sebelisoa ho fumana hore na ke seva sefe se ka morao khokahanyo ka 'ngoe e fetisetsoa ho eona. Mona ke tse ling tsa likhetho tse sebetsang:
- Roundrobin: Seva e 'ngoe le e' ngoe e sebelisoa ho latela boima ba eona. Ena ke algorithm e boreleli le e ntle ka ho fetesisa ha nako ea ts'ebetso ea li-server e ntse e abuoa ka ho lekana. Algorithm ena e matla, e lumellang boima ba seva hore bo fetoloe ha ho fofa.
- Leastconn: ho khethiloe seva e nang le likhokahano tse fokolang. Round robin e etsoa pakeng tsa li-server tse nang le mojaro o tšoanang. Ho sebelisa algorithm ena ho khothaletsoa bakeng sa mananeo a malelele a kang LDAP, SQL, TSE, joalo-joalo, empa ha ea lokela haholo linako tse khutšoane tse kang HTTP.
- Pele: Seva ea pele e nang le likhokahano tse fumanehang e fumana khokahano. Li-server li khethiloe ho tloha ho palo e tlaase ka ho fetisisa ea ID ho ea ho e phahameng ka ho fetisisa, e sa fetoheng ho boemo ba seva polasing. Hang ha seva e fihla maxconn, ho sebelisoa seva se latelang.
- Source: Aterese ea IP ea mohloli e potlakile 'me e arotsoe ke boima bohle ba li-server tse sebetsang ho fumana hore na ke seva sefe se tla fumana kopo. Ka tsela ena, aterese e tšoanang ea IP ea bareki e tla lula e ea ho seva se le seng, ha li-server li ntse li tšoana.
Ho theha ho leka-lekanya mojaro boemong ba kopo (lera 7)
Kgetho e 'ngoe e teng ke ho lokisa sekala sa mojaro hore se sebetse sethaleng sa kopo (lera 7), se thusang ha likarolo tsa ts'ebeliso ea hau ea webo li fumaneha ho baamoheli ba fapaneng. Sena se ka finyelloa ka ho phunya phetiso ea khokahano, mohlala ka URL.
Bula faele ea tlhophiso ea HAProxy u sebelisa mohlophisi oa mongolo:
sudo vi /etc/haproxy/haproxy.cfg
Ebe u hlophisa likarolo tsa frontend le backend joalo ka mohlala o ka tlase:
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
Sebaka se ka pele se phatlalatsa molao oa ACL o bitsoang url_blog o sebetsang ho likhokahano tsohle tse nang le litsela tse qalang ka /blog. Use_backend e hlakisa hore likhokahano tse tsamaellanang le boemo ba url_blog li lokela ho fanoa ke backend e bitsoang blog_back, 'me likopo tse ling kaofela li sebetsoa ke backend ea kamehla.
Ka lehlakoreng la backend, tlhophiso e theha lihlopha tse peli tsa li-server: http_back, joalo ka pele, le e ncha e bitsoang blog_back, e sebetsanang le likhokahano ho example.com/blog.
Ka mor'a ho fetola litlhophiso, boloka faele 'me u qale hape HAProxy u sebelisa taelo e latelang:
sudo systemctl restart haproxy
Haeba u fumana litemoso leha e le life kapa melaetsa ea liphoso nakong ea ho qala, hlahloba tlhophiso ea hau bakeng sa bona 'me u netefatse hore u thehile lifaele le lifoldara tse hlokahalang, ebe u leka ho qala hape.
Ho leka setup
Hang ha HAProxy e hlophisitsoe ebile e sebetsa, bula aterese ea IP ea sechaba ea seva sa balancer ea mojaro ho sebatli 'me u hlahlobe hore na u hokahane le backend ka nepo. The stats uri parameter ho tlhophiso e theha leqephe la lipalo-palo atereseng e boletsoeng.
http://load_balancer_public_ip/haproxy?stats
Ha o kenya leqephe la lipalo-palo, haeba li-server tsohle tsa hau li bontša botala, joale seta e atlehile!
Leqephe la lipalo-palo le na le tlhaiso-leseling e bohlokoa bakeng sa ho latedisa baamohedi ba webosaete, ho kenyeletsoa nako ea ho nyoloha / tlase le palo ea linako. Haeba seva e tšoailoe ka bofubelu, etsa bonnete ba hore seva e buletsoe le hore u ka e ping ho tloha mochining oa ho leka-lekanya mojaro.
Haeba tekanyo ea mojaro oa hau e sa arabe, etsa bonnete ba hore likhokahano tsa HTTP ha li thijoe ke firewall. Hape etsa bonnete ba hore HAProxy e sebetsa e sebelisa taelo e ka tlase:
sudo systemctl status haproxy
Ho sireletsa leqephe la lipalo-palo ka password
Leha ho le joalo, haeba leqephe la lipalo-palo le thathamisitsoe feela karolong e ka pele, joale le bulehile hore motho e mong le e mong a le bone, e ka 'nang ea se ke ea e-ba khopolo e ntle. Ho e-na le hoo, u ka e abela nomoro ea port ea tloaelo ka ho eketsa mohlala o ka tlase qetellong ea faele ea hau ea haproxy.cfg. Tlosa sebaka mosebedisi и phasewete bakeng sa ntho e sireletsehileng:
listen stats
bind *:8181
stats enable
stats uri /
stats realm Haproxy Statistics
stats auth username:password
Ka mor'a ho kenya sehlopha se secha sa bamameli, tlosa sehokelo sa khale sa stats uri ho sehlopha sa frontend. Ha u qetile, boloka faele 'me u qale hape HAProxy.
sudo systemctl restart haproxy
Ebe u bula selekanyo sa mojaro hape ka nomoro e ncha ea boema-kepe 'me u kene ka lebitso la mosebelisi le password eo u e boletseng faeleng ea tlhophiso.
http://load_balancer_public_ip:8181
Etsa bonnete ba hore li-server tsohle tsa hau li ntse li bonts'a botala ebe u bula IP balancer ntle le linomoro tsa port ho sebatli sa hau.
http://load_balancer_public_ip/
Haeba bonyane u na le mefuta e fapaneng ea maqephe a lulang ho li-server tsa hau tse ka morao, u tla hlokomela hore nako le nako ha u kenya leqephe hape u fumana karabo ho tsoa ho moamoheli ea fapaneng. U ka leka li-algorithms tse fapaneng tsa ho leka-lekanya karolong ea tlhophiso kapa u hlahlobe
Qetello: HAProxy Load Balancer
Kea u lebohela ka katleho ho theha HAProxy load balancer! Leha o na le setup ea mantlha ea ho leka-lekanya mojaro, o ka ntlafatsa haholo ts'ebetso le ho fumaneha ha ts'ebeliso ea hau ea webo. Tataiso ena ke selelekela sa ho leka-lekanya ho leka-lekanya le HAProxy, e khonang ho feta se ka kenyelletsoang ho tataiso ea ho seta e potlakileng. Re khothaletsa ho leka litlhophiso tse fapaneng u sebelisa
Ka ho sebelisa li-host tse ngata ho sireletsa ts'ebeletso ea hau ea marang-rang ka li-headroom, tekanyo ea mojaro ka boeona e ntse e ka hlahisa ntlha ea ho hloleha. U ka tsoela pele ho ntlafatsa phumaneho e phahameng ka ho kenya IP e phaphametseng pakeng tsa li-balancers tse ngata tsa mojaro. U ka fumana ho eketsehileng ka sena ho rona
Tse ling ka thupelo
Source: www.habr.com