Kuisa iyo HAProxy load balancer paCentOS

Kuturikirwa kwechinyorwa kwakagadzirirwa manheru ekutanga kwekosi "Linux Administrator. Virtualization uye clustering"

Kuisa iyo HAProxy load balancer paCentOS

Load balancing ndiyo yakajairika mhinduro yekuyera yakachinjika mawebhu maapplication pane akawanda mahosti uku uchipa vashandisi nzvimbo imwechete yekuwana sevhisi. HAProxy ndeimwe yeanonyanya kufarirwa yakavhurika sosi kuyera kuenzanisa software iyo inopawo kuwanikwa kwepamusoro uye kushanda kweproxy.

HAProxy inovavarira kukwidziridza mashandisirwo ezviwanikwa, kuwedzera kuburitsa, kuderedza nguva yekupindura, uye kudzivirira kuwandisa chero chinhu chega chega. Inogona kuiswa pane zvakasiyana-siyana zvekugoverwa kweLinux, seCentOS 8, iyo yatichatarisa mugwaro rino, pamwe chete nehurongwa. Debian 8 ΠΈ Ubuntu 16.

Kuisa iyo HAProxy load balancer paCentOS

HAProxy inonyanya kukodzera mawebhusaiti ane traffic yakanyanya uye saka inowanzoshandiswa kuvandudza kuvimbika uye kuita kweakawanda-server web service configurations. Iri gwara rinotsanangura matanho ekumisikidza HAProxy semuyero wemutoro pane CentOS 8 cloud host, iyo inozoendesa traffic kune yako webhu maseva.

Sechinodiwa kuti uwane zvakanakisa mhedzisiro, iwe unofanirwa kunge uine maviri ewebhu maseva uye mutoro wekuenzanisa server. Masevha eWebhu anofanirwa kunge achimhanyisa masevhisi ewebhu akadai senginx kana httpd kuitira kuyedza kuyera kuyera pakati pavo.

Kuisa HAProxy paCentOS 8

Nekuti HAProxy inokurumidza kubuda yakavhurika sosi application, kugovera kunowanikwa kwauri mune yakajairwa CentOS repositories inogona kunge isiri iyo yazvino vhezheni. Kuti uzive vhezheni yazvino, mhanya unotevera kuraira:

sudo yum info haproxy

HAProxy inogara ichipa matatu akatsiga mavhezheni ekusarudza kubva: maviri achangoburwa akatsigirwa vhezheni uye yechitatu, yekare vhezheni iyo ichiri kugamuchira yakakosha zvigadziriso. Iwe unogona kugara uchitarisa yazvino yakagadzikana vhezheni yakanyorwa pane HAProxy webhusaiti uye wozofunga kuti ndeipi vhezheni yaunoda kushanda nayo.

Mugwaro iri, tichange tichiisa yazvino yakatsiga vhezheni 2.0, iyo yanga isati yavepo mune yakajairwa repositori panguva yekunyora gwara. Iwe unozofanirwa kuiisa kubva kune yekutanga sosi. Asi chekutanga, tarisa kana wasangana nemamiriro anodiwa kurodha uye kuunganidza chirongwa.

sudo yum install gcc pcre-devel tar make -y

Dhawunirodha iyo source code uchishandisa rairo pazasi. Unogona kutarisa kana paine shanduro itsva iripo HAProxy download peji.

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

Kana kurodha kwapera, bvisa mafaera uchishandisa murairo uri pazasi:

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

Enda kune unpacked source directory:

cd ~/haproxy-2.0.7

Wobva wagadzira chirongwa chesystem yako:

make TARGET=linux-glibc

Uye pakupedzisira, isa HAProxy pachayo:

sudo make install

HAProxy yave kuiswa, asi inoda mamwe manipulations kuti iite kushanda. Ngatirambei tichiseta software nemasevhisi pazasi.

Kugadzika HAProxy kune server yako

Zvino wedzera anotevera madhairekitori uye nhamba faira yeHAProxy entries:

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

Gadzira chinongedzo chekufananidzira kune mabhinari kuitira kuti iwe ugone kumhanyisa HAProxy mirairo semushandisi wenguva dzose:

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

Kana iwe uchida kuwedzera mumiriri kune yako sevhisi sevhisi, kopira iyo haproxy.init faira kubva mumienzaniso kuenda kune yako /etc/init.d dhairekitori. Rongedza mvumo yefaira kuitira kuti script iite, uye wozotangazve 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

Iwe zvakare unofanirwa kubvumidza iyo sevhisi kuti itangezve otomatiki kana sisitimu yatanga:

sudo chkconfig haproxy on

Kuti zvive nyore, zvinokurudzirwa kuwedzera mushandisi mutsva kumhanya HAProxy:

sudo useradd -r haproxy

Mushure meizvi, unogona kutarisa iyo yakaiswa shanduro nhamba zvakare uchishandisa murairo unotevera:

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

Muchiitiko chedu, shanduro inofanira kuva 2.0.7, sezvinoratidzwa mumuenzaniso wakabuda pamusoro.

Chekupedzisira, iyo default firewall muCentOS 8 inoganhurira purojekiti iyi. Shandisa mirairo inotevera kubvumira masevhisi anodiwa uye kuseta zvakare firewall:

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

Rodha Balancer Setup

Kumisikidza HAProxy inzira iri nyore. Chaizvoizvo, zvese zvaunoda kuti uite kuudza HAProxy kuti ndeapi mabatanidza yaanofanira kuteerera uye kwaanofanira kuadzosera.

Izvi zvinoitwa nekugadzira faira rekugadzirisa /etc/haproxy/haproxy.cfg nekutsanangura marongero. Unogona kuverenga nezve HAProxy zvigadziriso sarudzo papeji yezvinyorwakana uchida kuziva zvakawanda nezvazvo.

Kuyera kuyera pane yekutakura layer (layer 4)

Ngatitangei neiyo basic setup. Gadzira faira nyowani, semuenzaniso uchishandisa vi nemurairo uri pasi apa:

sudo vi /etc/haproxy/haproxy.cfg

Wedzera zvikamu zvinotevera kufaira. Tsiva server_name chii chinofanira kudaidza maseva ako pane nhamba peji, uye private_ip - yakavanzika IP kero yemaseva kwaunoda kutungamira webhu traffic. Unogona kutarisa zvakavanzika IP kero pane UpCloud control panel uye pa tab Private network pane menyu 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

Izvi zvinotsanangura dhizaini rekutakura mutoro (layer 4) rekunze rakanzi http_front kuteerera pachiteshi 80, iro rinozoendesa mberi traffic kune default backend inonzi http_back. Mamwe manhamba /haproxy?stats anobatanidza peji yezviverengero kukero yakataurwa.

Yakasiyana-siyana mitoro yekuenzanisa algorithms.

Kutsanangura maseva muchikamu chekumashure kunobvumira HAProxy kushandisa maseva aya ekuremedza kuenzanisa maererano ne-round-robin algorithm kana zvichibvira.

Bancing algorithms inoshandiswa kuona kuti ndeipi server mubackend imwe neimwe yekubatanidza inopfuudzwa kwairi. Heano mamwe esarudzo anobatsira:

  • Roundrobin: Sevha imwe neimwe inoshandiswa mukutendeuka zvichienderana nehuremu hwayo. Iyi ndiyo yakatsetseka uye yakanakisa algorithm kana iyo nguva yekugadzirisa yemaseva inoramba ichigoverwa zvakaenzana. Iyi algorithm ine simba, inobvumira huremu hweseva kuti hugadziriswe panhunzi.
  • Leastconn: server ine mashoma ekubatanidza inosarudzwa. Round robin inoitwa pakati pemaseva ane mutoro wakafanana. Kushandisa iyi algorithm inokurudzirwa kumisangano yakareba seLDAP, SQL, TSE, nezvimwewo, asi haina kunyatsokodzera zvikamu zvipfupi zvakaita seHTTP.
  • Chekutanga: Yekutanga sevha ine inowanikwa yekubatanidza slots inogamuchira iyo yekubatanidza. Masevha anosarudzwa kubva paID yenhamba yakaderera kusvika kune yepamusoro-soro, iyo inoenda kune chinzvimbo cheseva mupurazi. Kamwe sevha yasvika maxconn, inotevera sevha inoshandiswa.
  • Source: Nzvimbo yeIP kero yakakurumidza uye yakakamurwa nehuremu hwese hwemasevha anomhanya kuti uone kuti ndeipi server ichagamuchira chikumbiro. Nenzira iyi, iyo imwechete mutengi IP kero inogara ichienda kune imwechete sevha, nepo maseva achiramba akafanana.

Kumisikidza kuyera kuyera padanho rekushandisa (layer 7)

Imwe sarudzo iripo ndeyekugadzirisa chiyero chemutoro kuti chimhanye pane iyo application layer (layer 7), iyo inobatsira kana zvikamu zvewebhu application yako zviri pane akasiyana mauto. Izvi zvinogona kuwanikwa nekupuruzira kufambisa kwekubatanidza, semuenzaniso ne URL.

Vhura iyo HAProxy configuration file uchishandisa text editor:

sudo vi /etc/haproxy/haproxy.cfg

Wobva wagadzirisa zvikamu zvemberi uye zvekumashure sezviri pamuenzaniso uri pazasi:

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

Iyo yekumberi inozivisa mutemo we ACL unonzi url_blog unoshanda kune zvese zvinongedzo zvine nzira dzinotanga ne /blog. Use_backend inotsanangura kuti zvinongedzo zvinoenderana neurl_blog zvinofanirwa kupihwa nebackend inonzi blog_back, uye zvimwe zvikumbiro zvinobatwa neiyo default backend.

Padivi rekumashure, iyo gadziriso inomisa mapoka maviri emaseva: http_back, sepakutanga, uye imwe nyowani inonzi blog_back, inobata zvinongedzo kune example.com/blog.

Mushure mekuchinja zvigadziriso, chengetedza faira uye tangazve HAProxy uchishandisa murairo unotevera:

sudo systemctl restart haproxy

Kana iwe ukagamuchira chero yambiro kana mhosho meseji panguva yekutanga, tarisa magadzirirwo ako kwavari uye ita shuwa kuti wagadzira ese anodiwa mafaera nemaforodha, wozoedza kutangazve.

Kuedza setup

Kamwe HAProxy yagadziriswa uye ichimhanya, vhura iyo yeruzhinji IP kero yeyekuremedza balancer server mubrowser uye tarisa kana wakabatana kune backend nenzira kwayo. Iyo stats uri parameter mukugadzirisa inogadzira peji yezviverengero pakero yakataurwa.

http://load_balancer_public_ip/haproxy?stats

Paunorodha peji yezviverengero, kana maseva ako ese achiratidza girinhi, saka setup yakabudirira!

Kuisa iyo HAProxy load balancer paCentOS

Iyo peji yezviverengero ine ruzivo rwakakosha rwekutevera yako webhu saiti, kusanganisira kumusoro / pasi nguva uye nhamba yezvikamu. Kana sevha yamaka tsvuku, ita shuwa kuti sevha yakabatidzwa uye kuti iwe unogona kuipinza kubva pamushini wekuenzanisa.

Kana mutoro wako usiri kupindura, ita shuwa kuti HTTP yekubatanidza haisi kuvharwa nefirewall. Uyewo ita shuwa kuti HAProxy iri kushanda uchishandisa murairo uri pazasi:

sudo systemctl status haproxy

Kuchengetedza peji yezviverengero nepassword

Nekudaro, kana iyo nhamba peji yakangonyorwa kumberi kwekupedzisira, saka yakavhurika kuti munhu wese aone, izvo zvingave zvisiri zano rakanaka. Pane kudaro, unogona kugovera iyo nhamba yechiteshi chetsika nekuwedzera muenzaniso uri pazasi kusvika kumagumo efaira rako haproxy.cfg. Tsiva Username ΠΈ pasiwedhi kune chimwe chinhu chakachengeteka:

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

Mushure mekuwedzera boka revateereri, bvisa iyo yekare stats uri link kubva kumberi kweboka. Kana wapedza, chengetedza faira uye tangazve HAProxy.

sudo systemctl restart haproxy

Wobva wavhura chiyero chemutoro zvakare nenhamba nyowani yechiteshi uye pinda mukati nezita rekushandisa uye password yawakatsanangura mufaira rekugadzirisa.

http://load_balancer_public_ip:8181

Ita shuwa kuti maseva ako ese achiri kuratidza girinhi uye wobva wavhura iyo yekuremedza balancer IP pasina chero nhamba dzechiteshi mubrowser yako.

http://load_balancer_public_ip/

Kana iwe uine mamwe akasiyana-siyana emapeji ekumhara pane ako ekupedzisira-ekupedzisira maseva, iwe unozoona kuti pese paunorodhazve peji yacho unowana mhinduro kubva kune akasiyana mugamuchiri. Iwe unogona kuedza akasiyana kuenzanisa algorithms muchikamu chekugadzirisa kana kutarisa zvinyorwa zvakakwana.

Mhedziso: HAProxy Load Balancer

Makorokoto nekubudirira kuseta yako HAProxy load balancer! Kunyangwe neiyo yakakosha kuyera kuyera kuseta, unogona zvakanyanya kuvandudza mashandiro uye kuwanikwa kwewebhu application yako. Iri gwara rinongori sumo yekuremedza kuyera neHAProxy, iyo inokwanisa zvakanyanya kupfuura izvo zvinogona kufukidzwa mune yekukurumidza kuseta gwara. Isu tinokurudzira kuedza nemagadzirirwo akasiyana tichishandisa zvinyorwa zvakawanda, inowanikwa kune HAProxy, uye wobva watanga kuronga kuyera kuyera kune yako yekugadzira nharaunda.

Nekushandisa akawanda anotambira kuchengetedza yako webhu sevhisi nemusoro, iyo inoremedza iyo pachayo inogona kuramba ichipa poindi yekutadza. Iwe unogona kuenderera mberi nekuvandudza kuwanikwa kwepamusoro nekuisa IP inoyangarara pakati peakawanda mitoro mabharari. Iwe unogona kuwana zvakawanda pamusoro peizvi mune yedu chinyorwa nezve inoyangarara IP kero paUpCloud.

Zvimwe pamusoro pekosi "Linux Administrator. Virtualization uye clustering"***

Source: www.habr.com

Voeg