Ho kenya HAProxy load balancer ho CentOS

Phetolelo ea sengoloa e lokisitsoe bosiung ba pele thupelo e qala "Motsamaisi oa Linux. Virtualization le clustering"

Ho kenya HAProxy load balancer ho CentOS

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 ke e 'ngoe ea tse tsebahalang haholo mohloli o bulehileng oa ho leka-lekanya thepa e fanang ka boteng bo phahameng le ts'ebetso ea proxy.

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. Debian 8 и Ubuntu 16.

Ho kenya HAProxy load balancer ho CentOS

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 Leqephe la ho jarolla HAProxy.

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 leqepheng la litokomanehaeba u batla ho tseba haholoanyane ka eona.

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 ho phanele ea taolo ea UpCloud le ho tab Lenaneo la boipheliso lijong Network.

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!

Ho kenya HAProxy load balancer ho CentOS

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 litokomane tse felletseng.

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 litokomane tse ngata, e fumanehang ho HAProxy, ebe o qala ho rera ho leka-lekanya mojaro bakeng sa tikoloho ea hau ea tlhahiso.

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 sengoloa se buang ka liaterese tsa IP tse phaphametseng ho UpCloud.

Tse ling ka thupelo "Motsamaisi oa Linux. Virtualization le clustering"***

Source: www.habr.com

Eketsa ka tlhaloso