Fifi iwọntunwọnsi fifuye HAProxy sori CentOS

Itumọ nkan naa ni a pese sile ni aṣalẹ ti ibẹrẹ ikẹkọ naa "Alakoso Linux. Foju ati ikojọpọ"

Fifi iwọntunwọnsi fifuye HAProxy sori CentOS

Iwontunwonsi fifuye jẹ ojuutu ti o wọpọ fun awọn ohun elo wẹẹbu ti o ni iwọn petele kọja awọn ogun lọpọlọpọ lakoko ti o pese awọn olumulo pẹlu aaye kan ti iraye si iṣẹ naa. HAProxy jẹ ọkan ninu sọfitiwia iwọntunwọnsi fifuye orisun olokiki julọ ti o tun pese wiwa giga ati iṣẹ ṣiṣe aṣoju.

HAProxy tiraka lati je ki lilo awọn oluşewadi pọ si, mu iwọn iṣelọpọ pọ si, dinku akoko idahun, ati yago fun ikojọpọ awọn orisun kọọkan. O le fi sori ẹrọ lori ọpọlọpọ awọn pinpin Linux, gẹgẹbi CentOS 8, eyiti a yoo dojukọ ninu itọsọna yii, ati awọn ọna ṣiṣe. Debian 8 и Ubuntu 16.

Fifi iwọntunwọnsi fifuye HAProxy sori CentOS

HAProxy jẹ paapaa dara fun awọn oju opo wẹẹbu pẹlu ijabọ giga pupọ ati nitorinaa a lo nigbagbogbo lati mu igbẹkẹle ati iṣẹ ṣiṣe ti awọn atunto iṣẹ oju opo wẹẹbu lọpọlọpọ. Itọsọna yii ṣe ilana awọn igbesẹ lati ṣeto HAProxy bi iwọntunwọnsi fifuye lori agbalejo awọsanma CentOS 8, eyiti lẹhinna awọn ọna opopona si awọn olupin wẹẹbu rẹ.

Bi ohun pataki ṣaaju fun awọn esi to dara julọ, o yẹ ki o ni o kere ju awọn olupin wẹẹbu meji ati olupin iwọntunwọnsi fifuye. Awọn olupin wẹẹbu gbọdọ ṣiṣẹ o kere ju iṣẹ wẹẹbu ipilẹ kan gẹgẹbi nginx tabi httpd lati le ṣe idanwo iwọntunwọnsi fifuye laarin wọn.

Fifi HAProxy sori CentOS 8

Nitori HAProxy jẹ ohun elo orisun ṣiṣi ti nyara ni kiakia, pinpin ti o wa fun ọ ni awọn ibi ipamọ CentOS boṣewa le ma jẹ ẹya tuntun. Lati wa ẹya ti isiyi, ṣiṣe aṣẹ wọnyi:

sudo yum info haproxy

HAProxy nigbagbogbo n pese awọn ẹya iduroṣinṣin mẹta lati yan lati: awọn ẹya atilẹyin aipẹ meji julọ ati ẹkẹta, ẹya agbalagba ti o tun ngba awọn imudojuiwọn to ṣe pataki. O le nigbagbogbo ṣayẹwo ẹya iduroṣinṣin tuntun ti a ṣe akojọ lori oju opo wẹẹbu HAProxy ati lẹhinna pinnu iru ẹya ti o fẹ ṣiṣẹ pẹlu.

Ninu itọsọna yii, a yoo fi ẹya iduroṣinṣin tuntun 2.0 sori ẹrọ, eyiti ko sibẹsibẹ wa ni awọn ibi ipamọ boṣewa ni akoko kikọ itọsọna naa. Iwọ yoo nilo lati fi sii lati orisun atilẹba. Ṣugbọn akọkọ, ṣayẹwo ti o ba ti pade awọn ipo pataki lati ṣe igbasilẹ ati ṣajọ eto naa.

sudo yum install gcc pcre-devel tar make -y

Ṣe igbasilẹ koodu orisun nipa lilo aṣẹ ni isalẹ. O le ṣayẹwo boya ẹya tuntun wa lori HAProxy download iwe.

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

Ni kete ti igbasilẹ naa ti pari, jade awọn faili ni lilo aṣẹ ni isalẹ:

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

Lọ si itọsọna orisun ti a ko ti padi:

cd ~/haproxy-2.0.7

Lẹhinna ṣajọ eto fun eto rẹ:

make TARGET=linux-glibc

Ati nikẹhin, fi sori ẹrọ HAProxy funrararẹ:

sudo make install

HAProxy ti fi sori ẹrọ ni bayi, ṣugbọn o nilo diẹ ninu awọn ifọwọyi lati jẹ ki o ṣiṣẹ. Jẹ ki a tẹsiwaju eto sọfitiwia ati awọn iṣẹ ni isalẹ.

Ṣiṣeto HAProxy fun olupin rẹ

Bayi ṣafikun awọn ilana atẹle ati faili iṣiro fun awọn titẹ sii HAProxy:

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

Ṣẹda ọna asopọ aami fun awọn alakomeji ki o le ṣiṣe awọn aṣẹ HAProxy bi olumulo deede:

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

Ti o ba fẹ ṣafikun aṣoju si eto rẹ bi iṣẹ kan, daakọ faili haproxy.init lati awọn apẹẹrẹ si itọsọna /etc/init.d rẹ. Ṣatunkọ awọn igbanilaaye faili ki iwe afọwọkọ naa yoo ṣiṣẹ, lẹhinna tun bẹrẹ daemon systemd:

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

O tun nilo lati gba iṣẹ laaye lati tun bẹrẹ laifọwọyi nigbati eto ba bẹrẹ:

sudo chkconfig haproxy on

Fun irọrun, o tun ṣeduro lati ṣafikun olumulo tuntun lati ṣiṣẹ HAProxy:

sudo useradd -r haproxy

Lẹhin eyi, o le ṣayẹwo nọmba ẹya ti a fi sii lẹẹkansi nipa lilo aṣẹ atẹle:

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

Ninu ọran wa, ẹya yẹ ki o jẹ 2.0.7, bi a ṣe han ninu iṣafihan apẹẹrẹ loke.

Nikẹhin, ogiriina aiyipada ni CentOS 8 jẹ ihamọ pupọ fun iṣẹ akanṣe yii. Lo awọn aṣẹ wọnyi lati gba awọn iṣẹ ti o nilo laaye ati tun ogiriina naa pada:

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

Fifuye Iwontunws.funfun Oṣo

Ṣiṣeto HAProxy jẹ ilana ti o rọrun kan. Ni pataki, gbogbo ohun ti o nilo lati ṣe ni sọ fun HAProxy kini awọn asopọ ti o yẹ ki o tẹtisi ati ibiti o yẹ ki o tan wọn.

Eyi ni a ṣe nipa ṣiṣẹda faili iṣeto ni /etc/haproxy/haproxy.cfg pẹlu awọn eto asọye. O le ka nipa awọn aṣayan iṣeto ni HAProxy lori iwe iweti o ba ti o ba fẹ lati mọ siwaju si nipa o.

Iwontunwonsi fifuye ni ipele gbigbe (Layer 4)

Jẹ ká bẹrẹ pẹlu awọn ipilẹ setup. Ṣẹda faili atunto tuntun, fun apẹẹrẹ lilo vi pẹlu aṣẹ ni isalẹ:

sudo vi /etc/haproxy/haproxy.cfg

Ṣafikun awọn apakan atẹle si faili naa. Rọpo orukọ olupin kini o yẹ ki o pe awọn olupin rẹ lori oju-iwe awọn iṣiro, ati ikọkọ_ip - Awọn adirẹsi IP ikọkọ ti awọn olupin ti o fẹ ṣe itọsọna ijabọ wẹẹbu. O le ṣayẹwo awọn adiresi IP ikọkọ lori UpCloud iṣakoso nronu ati lori taabu Nẹtiwọki aladani lori akojọ aṣayan 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

Eleyi asọye a irinna Layer fifuye iwontunwonsi (Layer 4) externally ti a npè ni http_front gbigbọ lori ibudo 80, eyi ti lẹhinna dari ijabọ si a aiyipada backend ti a npè ni http_back. Awọn iṣiro afikun /haproxy?stats so oju-iwe iṣiro pọ si adiresi ti a pato.

Orisirisi awọn alugoridimu iwọntunwọnsi fifuye.

Ṣiṣeto awọn olupin ni apakan ẹhin gba HAProxy laaye lati lo awọn olupin wọnyi fun iwọntunwọnsi fifuye ni ibamu si algorithm-robin kan nigbati o ṣee ṣe.

Awọn algoridimu iwọntunwọnsi ni a lo lati pinnu iru olupin ti o wa ninu ẹhin asopọ kọọkan ti kọja si. Eyi ni diẹ ninu awọn aṣayan to wulo:

  • Roundrobin: Olupin kọọkan ni a lo ni titan gẹgẹbi iwuwo rẹ. Eyi ni alugoridimu didan ati itẹtọ julọ nigbati akoko sisẹ ti awọn olupin naa wa ni pinpin ni deede. Yi alugoridimu ni ìmúdàgba, gbigba awọn olupin ká àdánù lati wa ni titunse lori awọn fly.
  • Leastconn: olupin ti o ni awọn asopọ ti o kere julọ ti yan. Yika Robin ṣe laarin awọn olupin pẹlu fifuye kanna. Lilo algorithm yii ni a ṣe iṣeduro fun awọn igba pipẹ bii LDAP, SQL, TSE, ati bẹbẹ lọ, ṣugbọn ko dara pupọ fun awọn akoko kukuru bii HTTP.
  • Akoko: Olupin akọkọ pẹlu awọn iho asopọ ti o wa gba asopọ naa. Awọn olupin ni a yan lati ID nọmba ti o kere julọ si giga julọ, eyiti o jẹ aṣiṣe si ipo olupin ni oko. Ni kete ti olupin ba de iye maxconn, olupin atẹle ti lo.
  • Orisun: Adirẹsi IP orisun jẹ hashed ati pin nipasẹ iwuwo lapapọ ti awọn olupin nṣiṣẹ lati pinnu iru olupin ti yoo gba ibeere naa. Ni ọna yii, adiresi IP onibara kanna yoo lọ nigbagbogbo si olupin kanna, lakoko ti awọn olupin wa kanna.

Ṣiṣeto iwọntunwọnsi fifuye ni ipele ohun elo (Layer 7)

Aṣayan miiran ti o wa ni lati tunto iwọntunwọnsi fifuye lati ṣiṣẹ ni Layer ohun elo (Layer 7), eyiti o wulo nigbati awọn apakan ti ohun elo wẹẹbu rẹ wa lori awọn ogun oriṣiriṣi. Eyi le ṣe aṣeyọri nipa gbigbe gbigbe ti asopọ, fun apẹẹrẹ nipasẹ URL.

Ṣii faili iṣeto ni HAProxy nipa lilo olootu ọrọ kan:

sudo vi /etc/haproxy/haproxy.cfg

Lẹhinna tunto iwaju iwaju ati awọn apa ẹhin gẹgẹ bi apẹẹrẹ ni isalẹ:

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

Iwaju iwaju sọ ofin ACL kan ti a pe ni url_blog ti o kan gbogbo awọn asopọ pẹlu awọn ọna ti o bẹrẹ pẹlu / bulọọgi. Use_backend sọ pe awọn asopọ ti o baamu ipo url_blog yẹ ki o jẹ iranṣẹ nipasẹ ẹhin ti a npè ni blog_back, ati pe gbogbo awọn ibeere miiran ni a mu nipasẹ ẹhin aiyipada.

Ni ẹgbẹ ẹhin, iṣeto naa ṣeto awọn ẹgbẹ meji ti awọn olupin: http_back, bi tẹlẹ, ati ọkan tuntun ti a pe ni blog_back, eyiti o mu awọn asopọ si example.com/blog.

Lẹhin iyipada awọn eto, fi faili pamọ ki o tun bẹrẹ HAProxy nipa lilo aṣẹ atẹle:

sudo systemctl restart haproxy

Ti o ba gba awọn ikilọ eyikeyi tabi awọn ifiranṣẹ aṣiṣe lakoko ibẹrẹ, ṣayẹwo iṣeto rẹ fun wọn ki o rii daju pe o ti ṣẹda gbogbo awọn faili pataki ati awọn folda, lẹhinna gbiyanju tun bẹrẹ lẹẹkansi.

Idanwo iṣeto

Ni kete ti tunto HAProxy ati ṣiṣiṣẹ, ṣii adirẹsi IP ti gbogbo eniyan ti olupin iwọntunwọnsi fifuye ni ẹrọ aṣawakiri kan ki o ṣayẹwo ti o ba sopọ si ẹhin ni deede. Awọn iṣiro uri paramita ni iṣeto ni ṣẹda oju-iwe awọn iṣiro ni adirẹsi ti a pato.

http://load_balancer_public_ip/haproxy?stats

Nigbati o ba ṣaja oju-iwe awọn iṣiro, ti gbogbo awọn olupin rẹ ba fihan alawọ ewe, lẹhinna iṣeto naa jẹ aṣeyọri!

Fifi iwọntunwọnsi fifuye HAProxy sori CentOS

Oju-iwe awọn iṣiro naa ni diẹ ninu alaye to wulo fun titọpa awọn ogun wẹẹbu rẹ, pẹlu akoko oke/isalẹ ati nọmba awọn akoko. Ti olupin naa ba samisi pupa, rii daju pe olupin naa ti wa ni titan ati pe o le ping rẹ lati ẹrọ iwọntunwọnsi fifuye.

Ti iwọntunwọnsi fifuye rẹ ko ba dahun, rii daju pe awọn asopọ HTTP ko ni idinamọ nipasẹ ogiriina kan. Tun rii daju pe HAProxy n ṣiṣẹ nipa lilo aṣẹ ni isalẹ:

sudo systemctl status haproxy

Idabobo oju-iwe awọn iṣiro pẹlu ọrọ igbaniwọle kan

Sibẹsibẹ, ti oju-iwe awọn iṣiro ba jẹ atokọ nirọrun ni opin iwaju, lẹhinna o ṣii fun gbogbo eniyan lati rii, eyiti o le ma jẹ imọran to dara. Dipo, o le fi nọmba ibudo aṣa fun u nipa fifi apẹẹrẹ ni isalẹ kun si opin faili haproxy.cfg rẹ. Rọpo olumulo и ọrọigbaniwọle fun nkankan ailewu:

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

Lẹhin fifi ẹgbẹ olutẹtisi tuntun kun, yọọ ọna asopọ uri awọn iṣiro atijọ kuro ni ẹgbẹ iwaju. Nigbati o ba pari, fi faili pamọ ki o tun bẹrẹ HAProxy.

sudo systemctl restart haproxy

Lẹhinna ṣii iwọntunwọnsi fifuye lẹẹkansi pẹlu nọmba ibudo tuntun ati wọle pẹlu orukọ olumulo ati ọrọ igbaniwọle ti o pato ninu faili iṣeto ni.

http://load_balancer_public_ip:8181

Rii daju pe gbogbo awọn olupin rẹ tun n ṣafihan alawọ ewe lẹhinna ṣii o kan IP iwọntunwọnsi fifuye laisi awọn nọmba ibudo eyikeyi ninu ẹrọ aṣawakiri rẹ.

http://load_balancer_public_ip/

Ti o ba ni o kere ju diẹ ninu awọn oju-iwe ibalẹ lori awọn olupin ẹhin-ipari rẹ, iwọ yoo ṣe akiyesi pe ni gbogbo igba ti o ba tun gbe oju-iwe naa o gba esi lati ọdọ agbalejo miiran. O le gbiyanju awọn algorithm iwọntunwọnsi oriṣiriṣi ni apakan iṣeto tabi ṣayẹwo pipe iwe.

Ipari: HAProxy Load Balancer

A ku oriire ni aṣeyọri ti ṣeto iwọntunwọnsi fifuye HAProxy rẹ! Paapaa pẹlu iṣeto iwọntunwọnsi fifuye ipilẹ, o le ni ilọsiwaju iṣẹ ṣiṣe ati wiwa ohun elo wẹẹbu rẹ ni pataki. Itọsọna yii jẹ ifihan kan si iwọntunwọnsi fifuye pẹlu HAProxy, eyiti o lagbara pupọ diẹ sii ju ohun ti o le bo ninu itọsọna iṣeto iyara. A ṣeduro idanwo pẹlu awọn atunto oriṣiriṣi nipa lilo sanlalu iwe, ti o wa si HAProxy, ati lẹhinna bẹrẹ siseto iwọntunwọnsi fifuye fun agbegbe iṣelọpọ rẹ.

Nipa lilo ọpọlọpọ awọn ogun lati daabobo iṣẹ wẹẹbu rẹ pẹlu yara ori, iwọntunwọnsi fifuye funrararẹ le tun ṣafihan aaye ikuna kan. O le ni ilọsiwaju siwaju si wiwa giga nipasẹ fifi IP lilefoofo sori ẹrọ laarin awọn iwọntunwọnsi fifuye pupọ. O le wa diẹ sii nipa eyi ninu wa nkan nipa awọn adirẹsi IP lilefoofo lori UpCloud.

Diẹ ẹ sii nipa awọn dajudaju "Alakoso Linux. Foju ati ikojọpọ"***

orisun: www.habr.com

Fi ọrọìwòye kun