Faʻapipiʻi le HAProxy load balancer i CentOS

O le faaliliuga o le tusiga na saunia i le afiafi o le amataga o le vasega "Linux Pule. Fa'ata'ita'iga ma fa'aputuga"

Faʻapipiʻi le HAProxy load balancer i CentOS

O le faapaleniina o uta o se fofo masani mo le fa'alava fa'alava o upegatafa'ilagi i luga o le tele o 'au a'o tu'uina atu i tagata fa'aoga se avanoa e tasi i le auaunaga. HAProxy o se tasi o polokalama e sili ona lauiloa matala matala uta faapaleniina e maua ai foi le avanoa maualuga ma galuega sui.

E taumafai le HAProxy e fa'amalieina le fa'aogaina o puna'oa, fa'ateleina le gaosiga, fa'aitiitia le taimi tali, ma aloese mai le fa'atupuina o so'o se punaoa ta'itasi. E mafai ona faʻapipiʻi i luga o le tele o faʻasalalauga Linux, e pei o CentOS 8, lea o le a tatou taulaʻi i ai i lenei taʻiala, faʻapea foʻi ma faiga. Debian 8 и Ubuntu 16.

Faʻapipiʻi le HAProxy load balancer i CentOS

HAProxy e sili ona talafeagai mo 'upega tafaʻilagi e maualuga tele fefaʻatauaʻiga ma o lea e masani ona faʻaaogaina e faʻaleleia ai le faʻamaoni ma le faʻatinoina o faʻasalalauga auaunaga i luga ole laiga tele-server. O lenei taʻiala o loʻo faʻamatalaina ai laasaga e faʻatutuina ai HAProxy e avea o se paleni uta i luga o le CentOS 8 cloud host, ona faʻatautaia lea o fefaʻatauaiga i au 'upega tafaʻilagi.

I le avea o se mea e manaʻomia muamua mo faʻaiʻuga sili, e tatau ona i ai a itiiti ifo ma le lua 'upega tafaʻilagi ma se sapalai paleni uta. O 'upega tafaʻilagi e tatau ona faʻatautaia a itiiti ifo ma se 'auʻaunaga i luga ole laiga e pei ole nginx poʻo le httpd ina ia faʻataʻitaʻiina le paleni o uta i le va o latou.

Faʻapipiʻi HAProxy i CentOS 8

Talu ai ona o le HAProxy o se faʻamatalaga faʻalauiloa faʻavavevave, o le tufatufaga o loʻo avanoa mo oe i totonu o faleteuoloa masani CentOS atonu e le o se faʻamatalaga lata mai. Ina ia iloa le lomiga o loʻo iai nei, faʻataʻitaʻi le poloaiga lenei:

sudo yum info haproxy

O le HAProxy e tu'uina atu i taimi uma ni fa'amaumauga mautu e tolu e filifili mai ai: o fa'amatalaga lagolago e lua lata mai ma le lona tolu, fa'asologa tuai o lo'o maua pea fa'afouga taua. E mafai ona e siaki i taimi uma le lomiga mautu lata mai o loʻo lisiina i luga o le upega tafaʻilagi a le HAProxy ona filifili lea po o le fea lomiga e te manaʻo e galue ai.

I totonu o lenei taʻiala, o le a matou faʻapipiʻiina le stable version 2.0, lea e leʻi maua i totonu o faleteuoloa masani i le taimi na tusia ai le taʻiala. E te mana'omia le fa'apipi'iina mai le puna muamua. Ae muamua, siaki pe ua e ausia tulaga talafeagai e sii mai ma tuufaatasia le polokalama.

sudo yum install gcc pcre-devel tar make -y

La'u mai le source code e fa'aaoga ai le fa'atonuga i lalo. E mafai ona e siaki pe iai se fa'amatalaga fou o lo'o avanoa ile HAProxy itulau download.

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

A maeʻa le download, aveese faila e faʻaaoga ai le poloaiga i lalo:

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

Alu i le lisi o puna'oa e le'i fa'apipi'iina:

cd ~/haproxy-2.0.7

Ona tuufaatasia lea o le polokalame mo lau polokalama:

make TARGET=linux-glibc

Ma mulimuli ane, faʻapipiʻi HAProxy lava ia:

sudo make install

Ua fa'apipi'i nei le HAProxy, ae mana'omia nisi togafiti fa'aopoopo e fa'atino ai. Se'i o tatou fa'aauau le setiina o le polokalame ma auaunaga i lalo.

Fa'atulaga HAProxy mo lau 'au'aunaga

Faʻaopoopo nei faʻamaumauga ma faila faʻamaumauga mo faʻamaumauga HAProxy:

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

Fausia se fesoʻotaʻiga faʻatusa mo binaries ina ia mafai ai ona e faʻatautaia poloaiga HAProxy o se tagata faʻaoga masani:

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

Afai e te manaʻo e faʻaopoopo se sui i lau 'auʻaunaga o se 'auʻaunaga, kopi le faila haproxy.init mai faʻataʻitaʻiga i lau /etc/init.d directory. Fa'asa'o le fa'atagaga o faila ina ia fa'agasolo ai le tusitusiga, ona toe amata lea o le systemd daemon:

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

E te manaʻomia foʻi le faʻatagaina o le auaunaga e toe amata otometi pe a amata le polokalama:

sudo chkconfig haproxy on

Mo le faʻaogagofie, e fautuaina foi e faʻaopoopo se tagata fou e faʻatautaia HAProxy:

sudo useradd -r haproxy

A maeʻa lenei, e mafai ona e toe siaki le numera faʻapipiʻi faʻaoga e faʻaaoga ai le poloaiga lenei:

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

I la matou tulaga, o le lomiga e tatau ona 2.0.7, e pei ona faʻaalia i le faʻataʻitaʻiga o loʻo i luga.

Ma le mea mulimuli, o le faʻaogaina o le firewall i CentOS 8 e matua faʻatapulaʻaina mo lenei poloketi. Fa'aoga tulafono nei e fa'ataga ai auaunaga mana'omia ma toe setiina le pa puipui:

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

Seti Paleni uta

O le setiina o le HAProxy o se faiga faigofie lava. O le mea moni, pau lava le mea e tatau ona e faia o le taʻu atu i le HAProxy poʻo a fesoʻotaʻiga e tatau ona faʻalogo i ai ma le mea e tatau ona faʻafeiloaʻi ai.

E faia lenei mea e ala i le fatuina o se faila fetuutuunai /etc/haproxy/haproxy.cfg faʻatasi ai ma faʻamatalaga faʻatulagaina. E mafai ona e faitau e uiga i filifiliga faʻatulagaina HAProxy i luga ole itulau fa'amaumaugape afai e te fia iloa atili e uiga i ai.

Fa'apaleni uta i le vaega o felauaiga (vaega 4)

Tatou amata i le seti faavae. Fausia se faila faila fou, mo se faʻataʻitaʻiga faʻaaoga vi fa'atasi ai ma le fa'atonuga i lalo:

sudo vi /etc/haproxy/haproxy.cfg

Faaopoopo vaega nei i le faila. Sui igoa_server o le a le mea e tatau ona valaʻau i au 'auʻaunaga i luga o le itulau fuainumera, ma private_ip - tuatusi IP tumaoti o 'auʻaunaga e te manaʻo e faʻatonuina ai fefaʻatauaiga i luga ole laiga. E mafai ona e siaki tuatusi IP tumaoti i luga o le UpCloud control panel ma luga o le lisi Fesootaiga tumaoti luga o le lisi 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

O lo'o fa'amatalaina ai le fa'aputuga o uta o felauaiga (layer 4) fa'aigoa i fafo http_front fa'alogologo i luga o le taulaga 80, ona fa'asolo atu lea o felauaiga i tua i tua e igoa http_back. Fa'amaumauga fa'aopoopo /haproxy?stats e feso'ota'i le itulau fa'amaumauga i le tuatusi fa'apitoa.

Eseese uta paleni algorithms.

O le faʻamalamalamaina o 'auʻaunaga i le pito i tua e mafai ai e HAProxy ona faʻaogaina nei sapalai mo le paleni o uta e tusa ai ma se algorithm round-robin pe a mafai.

Paleni algorithms e fa'aoga e iloa ai po'o fea le server i tua o feso'ota'iga e pasi atu i ai. O nisi nei o filifiliga aoga:

  • Roundrobin: E fa'aoga ta'itasi ta'itasi e tusa ma lona mamafa. Ole algorithm sili lea ona lelei ma sili ona lelei pe a faʻaauau pea le tufatufaina atu o le taimi ole auʻaunaga. O lenei algorithm e malosi, e mafai ai ona fetuunai le mamafa o le server i luga o le lele.
  • Leastconn: ua filifilia le server e tau leai ni feso'ota'iga. Round robin e faia i le va o sapalai e tutusa le uta. O le faʻaaogaina o lenei algorithm e fautuaina mo taimi uumi e pei ole LDAP, SQL, TSE, ma isi, ae e le fetaui lelei mo taimi pupuu e pei ole HTTP.
  • Tulaga tasi: O le server muamua e iai avanoa feso'ota'iga avanoa e maua le feso'ota'iga. E filifilia 'au'aunaga mai le ID numera pito i lalo i le maualuga, lea e fa'aletonu i le tulaga o le server i le fa'ato'aga. O le taimi lava e oʻo atu ai le server i le maxconn, o le isi server e faʻaaogaina.
  • puna: O le tuatusi IP puna'aga ua fa'asalaina ma vaevaeina i le aofa'i o le mamafa o fa'agaioiga fa'agaoioiga e iloa ai po'o fea le server o le a mauaina le talosaga. I lenei auala, o le tuatusi IP lava lea e tasi o le a alu i taimi uma i le server e tasi, ae tumau pea le server.

Fa'atulagaina le paleni o uta i le tulaga o talosaga (layer 7)

O le isi avanoa avanoa o le faʻapipiʻiina lea o se paleni o uta e tamoʻe i luga o le laulau talosaga (layer 7), lea e aoga pe a iai vaega o lau 'upega tafaʻilagi i luga o 'au eseese. E mafai ona ausia lenei mea e ala i le faʻapipiʻiina o le fesoʻotaʻiga, mo se faʻataʻitaʻiga ile URL.

Tatala le faila faʻatulagaina HAProxy e faʻaaoga ai se tusitala o tusitusiga:

sudo vi /etc/haproxy/haproxy.cfg

Ona fetuutuunai lea o vaega pito i luma ma tua e pei o le faataitaiga o loo i lalo:

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

O le pito i luma o loʻo faʻaalia se tulafono ACL e taʻua url_blog e faʻatatau i fesoʻotaʻiga uma ma auala e amata ile / blog. Use_backend o lo'o fa'amaoti mai o feso'ota'iga e fetaui ma le tulaga url_blog e tatau ona tu'uina atu e le pito i tua e igoa ia blog_back, ma o isi talosaga uma e fa'atautaia e le fa'aletonu tua.

I le pito i tua, o le faʻatulagaga e faʻatulagaina ai ni vaega se lua o sapalai: http_back, pei o le taimi muamua, ma se mea fou e taʻua blog_back, lea e faʻatautaia fesoʻotaʻiga i example.com/blog.

A maeʻa ona sui tulaga, faʻasaoina le faila ma toe amata HAProxy faʻaaoga le poloaiga lenei:

sudo systemctl restart haproxy

Afai e te mauaina ni lapataiga poʻo ni faʻamatalaga sese i le taimi o le amataga, siaki lau faʻatulagaga mo i latou ma ia mautinoa ua e fatuina uma faila ma faila talafeagai, ona toe taumafai lea e toe amata.

Su'ega le seti

A maeʻa ona faʻapipiʻi ma taʻavale HAProxy, tatala le tuatusi IP lautele o le server balancer i totonu o se suʻega ma siaki pe saʻo lou fesoʻotaʻi i le pito i tua. O le fa'asologa o fa'amaumauga uri i le fa'atulagaga e fausia ai se itulau fa'amaumauga i le tuatusi fa'apitoa.

http://load_balancer_public_ip/haproxy?stats

A e utaina le itulau o fuainumera, pe a faʻaalia uma lau 'auʻaunaga lanu meamata, ona manuia lea o le seti!

Faʻapipiʻi le HAProxy load balancer i CentOS

O le itulau o fuainumera o loʻo i ai ni faʻamatalaga aoga mo le siakiina o au 'upega tafaʻilagi, e aofia ai taimi i luga / lalo ma numera o vasega. Afai e fa'ailoga mumu le server, ia mautinoa o lo'o ola le server ma e mafai ona e ping mai le masini paleni uta.

Afai e le o tali mai lau paleni uta, ia mautinoa o fesoʻotaʻiga HTTP e le o poloka e se pa puipui. Ia mautinoa foi o loʻo galue HAProxy e faʻaaoga ai le poloaiga o loʻo i lalo:

sudo systemctl status haproxy

Puipuia le itulau o fuainumera i se upu faataga

Ae peita'i, afai o le itulau fa'amaumauga e na'o le lisi i le pito i luma, ona tatala lea mo tagata uma e va'ai, atonu e le o se manatu lelei. Nai lo lena, e mafai ona e tuʻuina atu i ai se numera o le taulaga masani e ala i le faʻaopoopoina o le faʻataʻitaʻiga i lalo i le pito o lau faila haproxy.cfg. Sui username и numera e le iloa e sesi mo se mea saogalemu:

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

A mae'a fa'aopoopo se vaega fa'alogo fou, ave'ese le feso'ota'iga uri tuai mai le vaega pito i luma. A maeʻa, teu le faila ma toe amata HAProxy.

sudo systemctl restart haproxy

Ona toe tatala lea o le load balancer ma le numera o le taulaga fou ma saini i totonu ma le igoa ole igoa ma le upega tafailagi na e faʻamaonia i le faila faila.

http://load_balancer_public_ip:8181

Ia mautinoa o loʻo faʻaalia pea lau 'auʻaunaga lanu meamata ona tatala lea naʻo le uta paleni IP e aunoa ma ni numera o le taulaga i lau suʻega.

http://load_balancer_public_ip/

Afai e iai ni au itulau fa'atula'i 'ese'ese i au 'au'aunaga pito i tua, o le a e maitauina o taimi uma e te toe fa'atumuina ai le itulau e te maua ai se tali mai se isi 'au talimalo. E mafai ona e faʻataʻitaʻiina faʻatusatusaga algorithms eseese i le vaega faʻatulagaina pe siaki pepa atoatoa.

Fa'ai'uga: HAProxy Load Paleni

Fa'afetai i le fa'atūina manuia o lau HAProxy load balancer! E oo lava i se seti faʻavae paleni uta, e mafai ona e faʻaleleia atili le faʻatinoga ma le avanoa o lau 'upega tafaʻilagi. O lenei ta'iala ua na'o se fa'atomuaga i le paleni o uta ma le HAProxy, lea e mafai ona sili atu nai lo mea e mafai ona ufiufi i le ta'iala fa'atulagaina vave. Matou te fautuaina le faʻataʻitaʻiina o faʻasalalauga eseese e faʻaaoga ai tele fa'amaumauga, avanoa ile HAProxy, ona amata lea ona fuafua le paleni o uta mo lau siosiomaga gaosiga.

I le fa'aogaina o le tele o 'au e puipuia ai lau 'upega tafa'ilagi ma le ulu, o le load balancer lava ia e ono fa'aalia pea se tulaga o le toilalo. E mafai ona e fa'aleleia atili le avanoa maualuga e ala i le fa'apipi'iina o se IP fa'afefete i le va o le tele o paleni uta. E mafai ona e iloa atili e uiga i lenei mea ile matou tala e uiga i tuatusi IP opeopea i UpCloud.

E uiga i le kosi "Linux Pule. Fa'ata'ita'iga ma fa'aputuga"***

puna: www.habr.com

Faaopoopo i ai se faamatalaga