{"id":89711,"date":"2020-07-25T13:42:31","date_gmt":"2020-07-25T11:42:31","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/ustanavlivaem-balansirovshhik-nagruzki-haproxy-na-centos"},"modified":"2020-07-25T13:42:31","modified_gmt":"2020-07-25T11:42:31","slug":"ustanavlivaem-balansirovshhik-nagruzki-haproxy-na-centos","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ustanavlivaem-balansirovshhik-nagruzki-haproxy-na-centos","title":{"rendered":"Nastavujeme z\u00e1\u0165a\u017eov\u00fd balans\u00e9r HAProxy na CentOS","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong><em>Preklad \u010dl\u00e1nku bol pripraven\u00fd v predstihu pred za\u010diatkom kurzu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/KbNT\/\">\u201eAdministr\u00e1tor Linuxu. Virtualiz\u00e1cia a clustering\u201c<\/a><\/noindex><\/em><\/strong><\/p>\n<p><img decoding=\"async\" alt=\"Nastavujeme z\u00e1\u0165a\u017eov\u00fd balans\u00e9r HAProxy na CentOS\" src=\"\/wp-content\/uploads\/2020\/07\/0383023d85d77710b1120e5b896a8433.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vyva\u017eovanie za\u0165a\u017eenia je be\u017en\u00e9 rie\u0161enie pre horizont\u00e1lne \u0161k\u00e1lovanie webov\u00fdch aplik\u00e1ci\u00ed na viacer\u00fdch hostite\u013eoch, ktor\u00e9 pou\u017e\u00edvate\u013eom poskytuje jedin\u00fd pr\u00edstupov\u00fd bod k slu\u017ebe. <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a><\/noindex> je jedn\u00fdm z najpopul\u00e1rnej\u0161\u00edch programov na vyva\u017eovanie za\u0165a\u017eenia s otvoren\u00fdm zdrojov\u00fdm k\u00f3dom, ktor\u00fd tie\u017e poskytuje vysok\u00fa dostupnos\u0165 a funk\u010dnos\u0165 proxy.<\/p>\n<p><\/p>\n<p>HAProxy sa sna\u017e\u00ed optimalizova\u0165 vyu\u017e\u00edvanie zdrojov, maximalizova\u0165 priepustnos\u0165, minimalizova\u0165 \u010das odozvy a zabr\u00e1ni\u0165 pre\u0165a\u017eeniu ka\u017ed\u00e9ho jednotliv\u00e9ho zdroja. M\u00f4\u017ee by\u0165 nain\u0161talovan\u00fd na mnoh\u00fdch distrib\u00faci\u00e1ch Linuxu, ako je CentOS 8, na ktorom sa zameriame v tejto pr\u00edru\u010dke, ako aj v syst\u00e9moch <noindex><a rel=\"nofollow\" href=\"https:\/\/upcloud.com\/community\/tutorials\/haproxy-load-balancer-debian\/\">Debian 8<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"https:\/\/upcloud.com\/community\/tutorials\/haproxy-load-balancer-ubuntu\/\">Ubuntu 16<\/a><\/noindex>.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Nastavujeme z\u00e1\u0165a\u017eov\u00fd balans\u00e9r HAProxy na CentOS\" src=\"\/wp-content\/uploads\/2020\/07\/53bf7d1fa06f06f5d882e573f4984e4f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>HAProxy je obzvl\u00e1\u0161\u0165 vhodn\u00fd pre webov\u00e9 str\u00e1nky s ve\u013emi vysokou n\u00e1v\u0161tevnos\u0165ou, a preto sa \u010dasto pou\u017e\u00edva na zv\u00fd\u0161enie spo\u013eahlivosti a v\u00fdkonu konfigur\u00e1ci\u00ed webov\u00fdch slu\u017eieb s viacer\u00fdmi servermi. V tejto pr\u00edru\u010dke s\u00fa op\u00edsan\u00e9 kroky na nastavenie HAProxy ako vyva\u017eova\u010da za\u0165a\u017eenia na cloudovom hoste CentOS 8, ktor\u00fd n\u00e1sledne smeruje prev\u00e1dzku na va\u0161e webov\u00e9 servery.<\/p>\n<p><\/p>\n<p>Aby ste dosiahli najlep\u0161ie v\u00fdsledky, mali by ste ma\u0165 aspo\u0148 dva webov\u00e9 servery a server pre vyva\u017eovanie za\u0165a\u017eenia. Na webov\u00fdch serveroch by mala by\u0165 spusten\u00e1 aspo\u0148 z\u00e1kladn\u00e1 webov\u00e1 slu\u017eba, ako je nginx alebo httpd, aby ste mohli skontrolova\u0165 vyva\u017eovanie za\u0165a\u017eenia medzi nimi.<\/p>\n<p><\/p>\n<h2 id=\"ustanovka-haproxy-na-centos-8\">In\u0161tal\u00e1cia HAProxy na CentOS 8<\/h2>\n<p><\/p>\n<p>Vzh\u013eadom na to, \u017ee HAProxy je r\u00fdchlo sa vyv\u00edjaj\u00faca aplik\u00e1cia s otvoren\u00fdm zdrojov\u00fdm k\u00f3dom, distrib\u00facia, ktor\u00e1 je v\u00e1m k dispoz\u00edcii v \u0161tandardn\u00fdch repozit\u00e1roch CentOS, nemus\u00ed by\u0165 najnov\u0161ou verziou. Ak chcete zisti\u0165 aktu\u00e1lnu verziu, vykonajte nasleduj\u00faci pr\u00edkaz:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo yum info haproxy<\/code><\/pre>\n<p><\/p>\n<p>HAProxy v\u017edy pon\u00faka na v\u00fdber tri stabiln\u00e9 verzie: dve najnov\u0161ie podporovan\u00e9 verzie a tretiu, star\u0161iu verziu, ktor\u00e1 st\u00e1le dost\u00e1va kritick\u00e9 aktualiz\u00e1cie. V\u017edy m\u00f4\u017eete skontrolova\u0165 najnov\u0161iu stabiln\u00fa verziu uveden\u00fa na str\u00e1nke HAProxy a potom sa rozhodn\u00fa\u0165, s ktorou verziou chcete pracova\u0165.<\/p>\n<p><\/p>\n<p>V tomto sprievodcovi budeme in\u0161talova\u0165 najnov\u0161iu stabiln\u00fa verziu 2.0, ktor\u00e1 nebola k dispoz\u00edcii v \u0161tandardn\u00fdch repozit\u00e1roch v \u010dase p\u00edsania tohto sprievodcu. Budete ju musie\u0165 nain\u0161talova\u0165 z p\u00f4vodn\u00e9ho zdroja. Ale najprv skontrolujte, \u010di m\u00e1te splnen\u00e9 potrebn\u00e9 podmienky na stiahnutie a kompil\u00e1ciu programu.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo yum install gcc pcre-devel tar make -y<\/code><\/pre>\n<p><\/p>\n<p>Stiahnite si zdrojov\u00fd k\u00f3d pomocou ni\u017e\u0161ie uveden\u00e9ho pr\u00edkazu. M\u00f4\u017eete skontrolova\u0165, \u010di existuje nov\u0161ia verzia na <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\/#down\">str\u00e1nke s\u0165ahovania HAProxy<\/a><\/noindex>.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">wget http:\/\/www.haproxy.org\/download\/2.0\/src\/haproxy-2.0.7.tar.gz -O ~\/haproxy.tar.gz<\/code><\/pre>\n<p><\/p>\n<p>Po dokon\u010den\u00ed s\u0165ahovania rozba\u013ete s\u00fabory pomocou nasleduj\u00faceho pr\u00edkazu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">tar xzvf ~\/haproxy.tar.gz -C ~\/<\/code><\/pre>\n<p><\/p>\n<p>Prejdite do rozbalen\u00e9ho adres\u00e1ra so zdrojov\u00fdmi k\u00f3dmi:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">cd ~\/haproxy-2.0.7<\/code><\/pre>\n<p><\/p>\n<p>N\u00e1sledne skompilujte program pre v\u00e1\u0161 syst\u00e9m:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">make TARGET=linux-glibc<\/code><\/pre>\n<p><\/p>\n<p>A nakoniec nain\u0161talujte samotn\u00fa HAProxy:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo make install<\/code><\/pre>\n<p><\/p>\n<p>Teraz je HAProxy nain\u0161talovan\u00e1, ale pre jej fungovanie s\u00fa potrebn\u00e9 niektor\u00e9 \u010fal\u0161ie \u00fapravy. Pokra\u010dujme v nastaven\u00ed softv\u00e9ru a slu\u017eieb ni\u017e\u0161ie.<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-haproxy-pod-vash-server\">Nastavenie HAProxy pre v\u00e1\u0161 server<\/h2>\n<p><\/p>\n<p>Teraz pridajte nasleduj\u00face adres\u00e1re a s\u00fabor \u0161tatistiky pre z\u00e1znamy HAProxy:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo mkdir -p \/etc\/haproxy\nsudo mkdir -p \/var\/lib\/haproxy \nsudo touch \/var\/lib\/haproxy\/stats<\/code><\/pre>\n<p><\/p>\n<p>Vytvorte symbolick\u00fd odkaz pre bin\u00e1rne s\u00fabory, aby ste mohli sp\u00fa\u0161\u0165a\u0165 pr\u00edkazy HAProxy ako be\u017en\u00fd pou\u017e\u00edvate\u013e:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo ln -s \/usr\/local\/sbin\/haproxy \/usr\/sbin\/haproxy<\/code><\/pre>\n<p><\/p>\n<p>Ak chcete prida\u0165 proxy server do syst\u00e9mu ako slu\u017ebu, skop\u00edrujte s\u00fabor haproxy.init z examples do svojho adres\u00e1ra \/etc\/init.d. Upravi\u0165 pr\u00edstupov\u00e9 pr\u00e1va k s\u00faboru, aby sa skript mohol vykon\u00e1va\u0165, a potom re\u0161tartujte d\u00e9mon systemd:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo cp ~\/haproxy-2.0.7\/examples\/haproxy.init \/etc\/init.d\/haproxy\nsudo chmod 755 \/etc\/init.d\/haproxy\nsudo systemctl daemon-reload<\/code><\/pre>\n<p><\/p>\n<p>Takisto mus\u00edte povoli\u0165 slu\u017ebe automatick\u00e9 re\u0161tartovanie pri spusten\u00ed syst\u00e9mu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo chkconfig haproxy on<\/code><\/pre>\n<p><\/p>\n<p>Pre pohodlie sa taktie\u017e odpor\u00fa\u010da prida\u0165 nov\u00e9ho pou\u017e\u00edvate\u013ea na sp\u00fa\u0161\u0165anie HAProxy:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo useradd -r haproxy<\/code><\/pre>\n<p><\/p>\n<p>Po tomto m\u00f4\u017eete e\u0161te raz skontrolova\u0165 \u010d\u00edslo nain\u0161talovanej verzie pomocou nasleduj\u00faceho pr\u00edkazu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">haproxy -v\nHA-Proxy version 2.0.7 2019\/09\/27 - https:\/\/haproxy.org\/<\/code><\/pre>\n<p><\/p>\n<p>V na\u0161om pr\u00edpade by mala by\u0165 verzia 2.0.7, ako je uveden\u00e9 v pr\u00edklade v\u00fdstupu vy\u0161\u0161ie.<\/p>\n<p><\/p>\n<p>Nakoniec je firewall v CentOS 8 predvolene dos\u0165 re\u0161trikt\u00edvny pre tento projekt. Pou\u017eite nasleduj\u00face pr\u00edkazy na povolenie potrebn\u00fdch slu\u017eieb a re\u0161tartovanie firewallu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo firewall-cmd --permanent --zone=public --add-service=http\nsudo firewall-cmd --permanent --zone=public --add-port=8181\/tcp\nsudo firewall-cmd --reload<\/code><\/pre>\n<p><\/p>\n<h2 id=\"nastroyka-balansirovschika-nagruzki\">Nastavenie vyva\u017eova\u010da za\u0165a\u017eenia<\/h2>\n<p><\/p>\n<p>Nastavenie HAProxy je celkom jednoduch\u00fd proces. V podstate, v\u0161etko, \u010do mus\u00edte urobi\u0165, je informova\u0165 HAProxy, ak\u00e9 pripojenia m\u00e1 po\u010d\u00fava\u0165 a kam ich m\u00e1 preposla\u0165.<\/p>\n<p><\/p>\n<p>To sa vykon\u00e1va vytvoren\u00edm konfigura\u010dn\u00e9ho s\u00faboru \/etc\/haproxy\/haproxy.cfg s ur\u010duj\u00facimi nastaveniami. M\u00f4\u017eete si pre\u010d\u00edta\u0165 o parametroch konfigur\u00e1cie HAProxy <noindex><a rel=\"nofollow\" href=\"https:\/\/cbonte.github.io\/haproxy-dconv\/2.0\/configuration.html\">na str\u00e1nke dokument\u00e1cie<\/a><\/noindex>, ak sa chcete o tom dozvedie\u0165 viac.<\/p>\n<p><\/p>\n<h2 id=\"balansirovka-nagruzki-na-transportnom-urovne-layer-4\">Vyva\u017eovanie za\u0165a\u017eenia na \u00farovni prenosu (layer 4)<\/h2>\n<p><\/p>\n<p>Za\u010dneme so z\u00e1kladn\u00fdm nastaven\u00edm. Vytvorte nov\u00fd konfigura\u010dn\u00fd s\u00fabor, napr\u00edklad pomocou <strong>vi<\/strong> s nasleduj\u00facim pr\u00edkazom:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo vi \/etc\/haproxy\/haproxy.cfg<\/code><\/pre>\n<p><\/p>\n<p>Pridajte do s\u00faboru nasleduj\u00face sekcie. Nahra\u010fte <strong>server_name<\/strong> t\u00fdm, \u010do by malo ozna\u010dova\u0165 va\u0161e servery na \u0161tatistickej str\u00e1nke, a <strong>private_ip<\/strong> \u2014 priv\u00e1tnymi IP adresami serverov, na ktor\u00e9 chcete posiela\u0165 webov\u00fd prenos. M\u00f4\u017eete skontrolova\u0165 priv\u00e1tne IP adresy <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.upcloud.com\/networks\/private?_ga=2.194047085.1141044831.1595511160-752947894.1595511160\">na ovl\u00e1dacom paneli UpCloud<\/a><\/noindex> a na karte <em>Private network<\/em> v menu <em>Sie\u0165<\/em>.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">global\n   log \/dev\/log local0\n   log \/dev\/log local1 notice\n   chroot \/var\/lib\/haproxy\n   stats timeout 30s\n   user haproxy\n   group haproxy\n   daemon\n\ndefaults\n   log global\n   mode http\n   option httplog\n   option dontlognull\n   timeout connect 5000\n   timeout client 50000\n   timeout server 50000\n\nfrontend http_front\n   bind *:80\n   stats uri \/haproxy?stats\n   default_backend http_back\n\nbackend http_back\n   balance roundrobin\n   server server_name1 private_ip1:80 check\n   server server_name2 private_ip2:80 check<\/code><\/pre>\n<p><\/p>\n<p>To definuje vyva\u017eova\u010d za\u0165a\u017eenia na \u00farovni prenosu (layer 4) s vonkaj\u0161\u00edm menom http_front, ktor\u00fd po\u010d\u00fava na porte 80, a potom pren\u00e1\u0161a prenos na predvolen\u00fd backend s n\u00e1zvom http_back. \u010eal\u0161ia \u0161tatistika \/haproxy?stats pripoj\u00ed \u0161tatistick\u00fa str\u00e1nku na uvedenej adrese.<\/p>\n<p><\/p>\n<h2 id=\"razlichnye-algoritmy-balansirovki-nagruzki\">R\u00f4zne algoritmy vyva\u017eovania za\u0165a\u017eenia.<\/h2>\n<p><\/p>\n<p>Ur\u010denie serverov v sekcii backend umo\u017e\u0148uje HAProxy vyu\u017e\u00edva\u0165 tieto servery na vyva\u017eovanie za\u0165a\u017eenia pod\u013ea algoritmu cyklick\u00e9ho prechodu, ke\u010f je to mo\u017en\u00e9.<\/p>\n<p><\/p>\n<p>Algoritmy vyva\u017eovania sa pou\u017e\u00edvaj\u00fa na ur\u010dovanie toho, na ktor\u00fd server v backend sa posiela ka\u017ed\u00e9 pripojenie. Tu s\u00fa niektor\u00e9 u\u017eito\u010dn\u00e9 mo\u017enosti:<\/p>\n<p><\/p>\n<ul>\n<li><strong>Roundrobin:<\/strong> ka\u017ed\u00fd server sa pou\u017e\u00edva striedavo pod\u013ea svojej v\u00e1hy. To je najplynulej\u0161\u00ed a najfairer\u0161\u00ed algoritmus, ke\u010f s\u00fa doby spracovania servermi rovnomerne rozdelen\u00e9. Tento algoritmus je dynamick\u00fd, \u010do umo\u017e\u0148uje regulova\u0165 v\u00e1hu servera za behu.<\/li>\n<li><strong>Leastconn:<\/strong> server s najmen\u0161\u00edm po\u010dtom spojen\u00ed je vybran\u00fd. Cyklick\u00fd pr\u00edstup sa vykon\u00e1va medzi servermi s rovnakou z\u00e1\u0165a\u017eou. Pou\u017eitie tohto algoritmu sa odpor\u00fa\u010da pre dlh\u00e9 rel\u00e1cie, ako s\u00fa LDAP, SQL, TSE at\u010f., ale nie je ve\u013emi vhodn\u00e9 pre kr\u00e1tke rel\u00e1cie, ako je HTTP.<\/li>\n<li><strong>Prv\u00fd:<\/strong> prv\u00fd server s dostupn\u00fdmi slotmi na pripojenie z\u00edska spojenie. Servery s\u00fa vyberan\u00e9 od najni\u017e\u0161ieho \u010d\u00edseln\u00e9ho identifik\u00e1tora po najvy\u0161\u0161\u00ed, ktor\u00fd zodpoved\u00e1 poz\u00edcii servera vo farm\u00e1re. Akon\u00e1hle server dosiahne hodnotu maxconn, pou\u017e\u00edva sa nasleduj\u00faci server.<\/li>\n<li><strong>Zdroj:<\/strong> IP adresa zdroja sa hashuje a del\u00ed na spolo\u010dn\u00fa v\u00e1hu spusten\u00fdch serverov, aby sa ur\u010dil, ktor\u00fd server bude prij\u00edma\u0165 po\u017eiadavku. Tak\u017ee t\u00e1 ist\u00e1 IP adresa klienta bude v\u017edy priraden\u00e1 k tomu ist\u00e9mu serveru, zatia\u013e \u010do servery zostan\u00fa nezmenen\u00e9.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"nastroyka-balansirovki-nagruzki-na-prikladnom-urovne-layer-7\">Nastavenie vyrovn\u00e1vania za\u0165a\u017eenia na aplika\u010dnej \u00farovni (\u00farove\u0148 7)<\/h2>\n<p><\/p>\n<p>\u010eal\u0161ia dostupn\u00e1 mo\u017enos\u0165 je nastavi\u0165 vyrovn\u00e1va\u010d za\u0165a\u017eenia na aplika\u010dnej \u00farovni (\u00farove\u0148 7), \u010do je u\u017eito\u010dn\u00e9, ak s\u00fa \u010dasti va\u0161ej webovej aplik\u00e1cie umiestnen\u00e9 na r\u00f4znych hostite\u013eoch. Toto m\u00f4\u017ee by\u0165 dosiahnut\u00e9 regulovan\u00edm prenosu spojenia, napr\u00edklad pod\u013ea URL.<\/p>\n<p><\/p>\n<p>Otvor\u00ed s\u00fabor konfigur\u00e1cie HAProxy v textovom editore:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo vi \/etc\/haproxy\/haproxy.cfg<\/code><\/pre>\n<p><\/p>\n<p>Potom nastavte segmenty frontend a backend pod\u013ea pr\u00edkladu ni\u017e\u0161ie:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">frontend http_front\n   bind *:80\n   stats uri \/haproxy?stats\n   acl url_blog path_beg \/blog\n   use_backend blog_back if url_blog\n   default_backend http_back\n\nbackend http_back\n   balance roundrobin\n   server server_name1 private_ip1:80 check\n   server server_name2 private_ip2:80 check\n\nbackend blog_back\n   server server_name3 private_ip3:80 check<\/code><\/pre>\n<p><\/p>\n<p>Frontend vyhlasuje pravidlo ACL s n\u00e1zvom url_blog, ktor\u00e9 sa aplikuje na v\u0161etky spojenia s cestami za\u010d\u00ednaj\u00facimi na \/blog. Use_backend ur\u010duje, \u017ee spojenia, ktor\u00e9 vyhovuj\u00fa podmienke url_blog, by mali by\u0165 obsluhovan\u00e9 backendom s n\u00e1zvom blog_back, a v\u0161etky ostatn\u00e9 po\u017eiadavky s\u00fa spracov\u00e1van\u00e9 backendom pod\u013ea vlastn\u00e9ho nastavenia.<\/p>\n<p><\/p>\n<p>Na strane backendu konfigur\u00e1cia nastavuje dve skupiny serverov: http_back, ako predt\u00fdm, a nov\u00fa, nazvan\u00fa blog_back, ktor\u00e1 obsluhuje spojenia s example.com\/blog.<\/p>\n<p><\/p>\n<p>Po zmene nastaven\u00ed ulo\u017ete s\u00fabor a re\u0161tartujte HAProxy pomocou nasleduj\u00facej pr\u00edkazu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo systemctl restart haproxy<\/code><\/pre>\n<p><\/p>\n<p>Ak ste pri spusten\u00ed dostali nejak\u00e9 varovania alebo chybov\u00e9 hl\u00e1senia, skontrolujte konfigur\u00e1ciu na ich pr\u00edtomnos\u0165 a uistite sa, \u017ee ste vytvorili v\u0161etky potrebn\u00e9 s\u00fabory a zlo\u017eky, a potom sk\u00faste znova re\u0161tartova\u0165.<\/p>\n<p><\/p>\n<h2 id=\"testirovanie-nastroyki\">Testovanie nastavenia<\/h2>\n<p><\/p>\n<p>Ke\u010f je HAProxy nakonfigurovan\u00e9 a spusten\u00e9, otvorte verejn\u00fa IP adresu servera vyrovn\u00e1va\u010da z\u00e1\u0165a\u017ee vo webovom prehliada\u010di a skontrolujte, \u010di ste sa spr\u00e1vne pripojili na backend. Parameter stats uri v konfigur\u00e1cii vytv\u00e1ra \u0161tatistick\u00fa str\u00e1nku na uvedenej adrese.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">http:\/\/load_balancer_public_ip\/haproxy?stats<\/code><\/pre>\n<p><\/p>\n<p>Ke\u010f na\u010d\u00edtate \u0161tatistick\u00fa str\u00e1nku, ak sa v\u0161etky va\u0161e servery zobrazuj\u00fa zeleno, nastavenie bolo \u00faspe\u0161n\u00e9!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Nastavujeme z\u00e1\u0165a\u017eov\u00fd balans\u00e9r HAProxy na CentOS\" src=\"\/wp-content\/uploads\/2020\/07\/ce912c5824d0294537b984fe04bdcc8b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u0160tatistick\u00e1 str\u00e1nka obsahuje niektor\u00e9 u\u017eito\u010dn\u00e9 inform\u00e1cie na sledovanie va\u0161ich webhostingov, vr\u00e1tane doby prev\u00e1dzky\/vypnutia a po\u010dtu rel\u00e1ci\u00ed. Ak je server ozna\u010den\u00fd \u010dervenou farbou, uistite sa, \u017ee server je zapnut\u00fd a \u017ee ho m\u00f4\u017eete pingi\u0165 z vyrovn\u00e1va\u010da z\u00e1\u0165a\u017ee.<\/p>\n<p><\/p>\n<p>Ak v\u00e1\u0161 vyrovn\u00e1va\u010d z\u00e1\u0165a\u017ee neodpoved\u00e1, uistite sa, \u017ee HTTP pripojenia nie s\u00fa blokovan\u00e9 firewallom. Taktie\u017e sa uistite, \u017ee HAProxy funguje pomocou nasleduj\u00faceho pr\u00edkazu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo systemctl status haproxy<\/code><\/pre>\n<p><\/p>\n<h2 id=\"zaschita-stranicy-statistiki-s-pomoschyu-parolya\">Ochrana \u0161tatistickej str\u00e1nky pomocou hesla<\/h2>\n<p><\/p>\n<p>Av\u0161ak, ak je \u0161tatistick\u00e1 str\u00e1nka jednoducho uveden\u00e1 vo frontende, je otvoren\u00e1 pre verejnos\u0165, \u010do nemus\u00ed by\u0165 najlep\u0161\u00edm n\u00e1padom. Namiesto toho jej m\u00f4\u017eete priradi\u0165 vlastn\u00e9 \u010d\u00edslo portu pridan\u00edm nasleduj\u00faceho pr\u00edkladu na koniec v\u00e1\u0161ho s\u00faboru haproxy.cfg. Nahra\u010fte <strong>username<\/strong> a <strong>password<\/strong> nie\u010d\u00edm bezpe\u010dn\u00fdm:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">listen stats\n   bind *:8181\n   stats enable\n   stats uri \/\n   stats realm Haproxy Statistics\n   stats auth username:password<\/code><\/pre>\n<p><\/p>\n<p>Po pridan\u00ed novej skupiny posluch\u00e1\u010dov odstr\u00e1\u0148te star\u00fd odkaz na stats uri zo skupiny frontend. Ke\u010f dokon\u010d\u00edte, ulo\u017ete s\u00fabor a re\u0161tartujte HAProxy.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo systemctl restart haproxy<\/code><\/pre>\n<p><\/p>\n<p>Potom znova otvorte vyrovn\u00e1va\u010d z\u00e1\u0165a\u017ee s nov\u00fdm \u010d\u00edslom portu a prihl\u00e1ste sa s pou\u017e\u00edvate\u013esk\u00fdm menom a heslom, ktor\u00e9 ste uviedli v konfigura\u010dnom s\u00fabore.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">http:\/\/load_balancer_public_ip:8181<\/code><\/pre>\n<p><\/p>\n<p>Uistite sa, \u017ee v\u0161etky va\u0161e servery sa st\u00e1le zobrazuj\u00fa zeleno, a potom otvorte len IP vyrovn\u00e1va\u010da z\u00e1\u0165a\u017ee bez ak\u00fdchko\u013evek \u010d\u00edsel portov vo va\u0161om prehliada\u010di.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">http:\/\/load_balancer_public_ip\/<\/code><\/pre>\n<p><\/p>\n<p>Ak m\u00e1te na svojich intern\u00fdch serveroch aspo\u0148 nejak\u00fa rozmanitos\u0165 cie\u013eov\u00fdch str\u00e1nok, v\u0161imnete si, \u017ee zaka\u017ed\u00fdm, ke\u010f na\u010d\u00edtate str\u00e1nku, dost\u00e1vate odpove\u010f od in\u00e9ho hostite\u013ea. M\u00f4\u017eete vysk\u00fa\u0161a\u0165 r\u00f4zne algoritmy vyrovn\u00e1vania za\u0165a\u017eenia v sekcii konfigur\u00e1cie alebo sa obozn\u00e1mi\u0165 s <noindex><a rel=\"nofollow\" href=\"https:\/\/cbonte.github.io\/haproxy-dconv\/\">\u00faplnou dokument\u00e1ciou<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"zaklyuchenie-balansirovschik-nagruzki-haproxy\">Z\u00e1ver: vyrovn\u00e1va\u010d za\u0165a\u017eenia HAProxy<\/h2>\n<p><\/p>\n<p>Gratulujeme k \u00faspe\u0161n\u00e9mu nastaveniu vyrovn\u00e1va\u010da za\u0165a\u017eenia HAProxy! Aj s z\u00e1kladn\u00fdm nastaven\u00edm vyrovn\u00e1vania za\u0165a\u017eenia m\u00f4\u017eete v\u00fdrazne zv\u00fd\u0161i\u0165 v\u00fdkon a dostupnos\u0165 va\u0161ej webovej aplik\u00e1cie. Tento n\u00e1vod je len \u00favodom do vyrovn\u00e1vania za\u0165a\u017eenia s HAProxy, ktor\u00e9 je schopn\u00e9 ove\u013ea viac, ako je mo\u017en\u00e9 op\u00edsa\u0165 v stru\u010dnej in\u0161tala\u010dnej pr\u00edru\u010dke. Odpor\u00fa\u010dame experimentova\u0165 s r\u00f4znymi konfigur\u00e1ciami pomocou <noindex><a rel=\"nofollow\" href=\"https:\/\/cbonte.github.io\/haproxy-dconv\/2.0\/configuration.html\">rozsiahlej dokument\u00e1cie<\/a><\/noindex>, dostupnej pre HAProxy, a potom prist\u00fapi\u0165 k pl\u00e1novaniu vyrovn\u00e1vania za\u0165a\u017eenia pre va\u0161e produk\u010dn\u00e9 prostredie.<\/p>\n<p><\/p>\n<p>Pou\u017e\u00edvan\u00edm viacer\u00fdch hostite\u013eov na ochranu v\u00e1\u0161ho webov\u00e9ho servisu pomocou rezervy v\u00fdkonu, s\u00e1m vyrovn\u00e1va\u010d za\u0165a\u017eenia m\u00f4\u017ee predstavova\u0165 bod zlyhania. E\u0161te viac m\u00f4\u017eete zv\u00fd\u0161i\u0165 vysok\u00fa dostupnos\u0165 nastaven\u00edm pl\u00e1vaj\u00facej IP medzi viacer\u00fdmi vyrovn\u00e1va\u010dmi za\u0165a\u017eenia. O tom sa m\u00f4\u017eete dozvedie\u0165 viac v na\u0161ej <noindex><a rel=\"nofollow\" href=\"https:\/\/upcloud.com\/community\/tutorials\/floating-ip-addresses\/\">\u010dl\u00e1nku o pl\u00e1vaj\u00facich IP adres\u00e1ch na UpCloud<\/a><\/noindex>.<\/p>\n<p>Viac inform\u00e1ci\u00ed o kurze <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/KbNT\/\">\u201eAdministr\u00e1tor Linuxu. Virtualiz\u00e1cia a clustering\u201c<\/a><\/noindex>***<\/p>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/512238\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0432 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 Linux. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f\u00bb \u0411\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u2014 \u044d\u0442\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0445\u043e\u0441\u0442\u0430\u043c \u0441 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0435\u0434\u0438\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443. HAProxy \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":89713,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-89711","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0432 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 Linux.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ustanavlivaem-balansirovshhik-nagruzki-haproxy-na-centos\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy \u043d\u0430 CentOS | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0432 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 Linux.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ustanavlivaem-balansirovshhik-nagruzki-haproxy-na-centos\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-25T11:42:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-25T11:42:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47In\u0161tal\u00e1cia vyrovn\u00e1va\u010da za\u0165a\u017eenia HAProxy na CentOS | ProHoster","description":"Preklad \u010dl\u00e1nku bol pripraven\u00fd pred \u0161tartom kurzu \u00abAdministr\u00e1tor Linux.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ustanavlivaem-balansirovshhik-nagruzki-haproxy-na-centos","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy \u043d\u0430 CentOS | ProHoster","og:description":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0432 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 Linux.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ustanavlivaem-balansirovshhik-nagruzki-haproxy-na-centos","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-25T11:42:31+00:00","article:modified_time":"2020-07-25T11:42:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"89711","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:05:27","updated":"2022-10-04 12:00:44","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/89711","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=89711"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/89711\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/89713"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=89711"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=89711"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=89711"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}