{"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\/pl\/blog\/administrirovanie\/ustanavlivaem-balansirovshhik-nagruzki-haproxy-na-centos","title":{"rendered":"Instalacja load balancera HAProxy na CentOS","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong><em>Przek\u0142ad artyku\u0142u przygotowany przed rozpocz\u0119ciem kursu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/KbNT\/\">\u201eAdministrator Linux. Wirtualizacja i klastrowanie\u201d<\/a><\/noindex><\/em><\/strong><\/p>\n<p><img decoding=\"async\" alt=\"Instalacja load balancera HAProxy na CentOS\" src=\"\/wp-content\/uploads\/2020\/07\/0383023d85d77710b1120e5b896a8433.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Load balancing to powszechne rozwi\u0105zanie do poziomego skalowania aplikacji internetowych na wielu hostach, zapewniaj\u0105ce u\u017cytkownikom jednolity punkt dost\u0119pu do us\u0142ugi. <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a><\/noindex> jest jednym z najpopularniejszych program\u00f3w do load balancingu z otwartym kodem \u017ar\u00f3d\u0142owym, kt\u00f3ry zapewnia tak\u017ce wysok\u0105 dost\u0119pno\u015b\u0107 i funkcjonalno\u015b\u0107 proxy.<\/p>\n<p><\/p>\n<p>HAProxy stara si\u0119 optymalizowa\u0107 wykorzystanie zasob\u00f3w, maksymalizowa\u0107 przepustowo\u015b\u0107, minimalizowa\u0107 czas odpowiedzi i unika\u0107 przeci\u0105\u017cenia ka\u017cdego zasobu. Mo\u017ce by\u0107 zainstalowane na wielu dystrybucjach Linux, takich jak CentOS 8, na kt\u00f3rym skupimy si\u0119 w tym przewodniku, a tak\u017ce w systemach <noindex><a rel=\"nofollow\" href=\"https:\/\/upcloud.com\/community\/tutorials\/haproxy-load-balancer-debian\/\">Debian 8<\/a><\/noindex> i <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=\"Instalacja load balancera HAProxy na CentOS\" src=\"\/wp-content\/uploads\/2020\/07\/53bf7d1fa06f06f5d882e573f4984e4f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>HAProxy szczeg\u00f3lnie nadaje si\u0119 do stron internetowych o bardzo du\u017cym ruchu, dlatego cz\u0119sto jest u\u017cywane do zwi\u0119kszenia niezawodno\u015bci i wydajno\u015bci konfiguracji us\u0142ug webowych z wieloma serwerami. W tym przewodniku przedstawione s\u0105 kroki konfigurowania HAProxy jako load balancera na chmurze CentOS 8, kt\u00f3ry nast\u0119pnie kieruje ruch do twoich serwer\u00f3w webowych.<\/p>\n<p><\/p>\n<p>Aby osi\u0105gn\u0105\u0107 najlepsze wyniki, musisz mie\u0107 przynajmniej dwa serwery webowe oraz serwer do load balancingu. Na serwerach webowych powinna by\u0107 uruchomiona przynajmniej podstawowa us\u0142uga webowa, taka jak nginx lub httpd, aby mo\u017cna by\u0142o sprawdzi\u0107 load balancing mi\u0119dzy nimi.<\/p>\n<p><\/p>\n<h2 id=\"ustanovka-haproxy-na-centos-8\">Instalacja HAProxy na CentOS 8<\/h2>\n<p><\/p>\n<p>Poniewa\u017c HAProxy to szybko rozwijaj\u0105ca si\u0119 aplikacja z otwartym kodem \u017ar\u00f3d\u0142owym, dystrybucja dost\u0119pna w standardowych repozytoriach CentOS mo\u017ce nie by\u0107 najnowsz\u0105 wersj\u0105. Aby sprawdzi\u0107 aktualn\u0105 wersj\u0119, wykonaj poni\u017csze polecenie:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo yum info haproxy<\/code><\/pre>\n<p><\/p>\n<p>HAProxy zawsze oferuje trzy stabilne wersje do wyboru: dwie najnowsze wspierane wersje oraz trzeci\u0105, starsz\u0105, kt\u00f3ra wci\u0105\u017c otrzymuje krytyczne aktualizacje. Zawsze mo\u017cesz sprawdzi\u0107 najnowsz\u0105 stabiln\u0105 wersj\u0119 na stronie HAProxy, a nast\u0119pnie zdecydowa\u0107, z kt\u00f3r\u0105 wersj\u0105 chcesz pracowa\u0107.<\/p>\n<p><\/p>\n<p>W tym przewodniku zainstalujemy najnowsz\u0105 stabiln\u0105 wersj\u0119 2.0, kt\u00f3ra nie by\u0142a jeszcze dost\u0119pna w standardowych repozytoriach w momencie pisania przewodnika. B\u0119dziesz musia\u0142 zainstalowa\u0107 j\u0105 z \u017ar\u00f3d\u0142a. Ale najpierw upewnij si\u0119, \u017ce spe\u0142niasz wymagania do pobrania i kompilacji 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>Pobierz kod \u017ar\u00f3d\u0142owy za pomoc\u0105 poni\u017cszej komendy. Mo\u017cesz sprawdzi\u0107, czy dost\u0119pna jest nowsza wersja na <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\/#down\">stronie pobierania 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 zako\u0144czeniu pobierania rozpakuj pliki za pomoc\u0105 poni\u017cszej komendy:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">tar xzvf ~\/haproxy.tar.gz -C ~\/<\/code><\/pre>\n<p><\/p>\n<p>Przejd\u017a do rozpakowanego katalogu z kodem \u017ar\u00f3d\u0142owym:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">cd ~\/haproxy-2.0.7<\/code><\/pre>\n<p><\/p>\n<p>Nast\u0119pnie skompiluj program pod swoj\u0105 wersj\u0119 systemu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">make TARGET=linux-glibc<\/code><\/pre>\n<p><\/p>\n<p>I na koniec zainstaluj sam\u0105 HAProxy:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo make install<\/code><\/pre>\n<p><\/p>\n<p>Teraz HAProxy jest zainstalowane, ale aby dzia\u0142a\u0142o, wymaga dodatkowych operacji. Kontynuujmy konfiguracj\u0119 oprogramowania i us\u0142ug poni\u017cej.<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-haproxy-pod-vash-server\">Konfiguracja HAProxy dla Twojego serwera<\/h2>\n<p><\/p>\n<p>Teraz dodaj nast\u0119puj\u0105ce katalogi oraz plik statystyk dla wpis\u00f3w 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>Utw\u00f3rz dowi\u0105zanie symboliczne do plik\u00f3w binarnych, aby\u015b m\u00f3g\u0142 uruchamia\u0107 polecenia HAProxy jako zwyk\u0142y u\u017cytkownik:<\/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>Je\u015bli chcesz doda\u0107 serwer proxy do systemu jako us\u0142ug\u0119, skopiuj plik haproxy.init z examples do swojego katalogu \/etc\/init.d. Edytuj uprawnienia pliku, aby skrypt by\u0142 wykonalny, a nast\u0119pnie prze\u0142aduj demon 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>Musisz r\u00f3wnie\u017c zezwoli\u0107 us\u0142udze na automatyczny restart przy uruchamianiu systemu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo chkconfig haproxy on<\/code><\/pre>\n<p><\/p>\n<p>Dla wygody zaleca si\u0119 tak\u017ce dodanie nowego u\u017cytkownika do uruchamiania HAProxy:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo useradd -r haproxy<\/code><\/pre>\n<p><\/p>\n<p>Po tym mo\u017cesz ponownie sprawdzi\u0107 numer zainstalowanej wersji za pomoc\u0105 nast\u0119puj\u0105cego polecenia:<\/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>W naszym przypadku wersja powinna by\u0107 2.0.7, jak pokazano w powy\u017cszym przyk\u0142adzie.<\/p>\n<p><\/p>\n<p>Na koniec zapora w CentOS 8 domy\u015blnie jest do\u015b\u0107 restrykcyjna dla tego projektu. U\u017cyj poni\u017cszych komend, aby zezwoli\u0107 na wymagane us\u0142ugi i zrestartowa\u0107 zapor\u0119:<\/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\">Konfiguracja load balancera<\/h2>\n<p><\/p>\n<p>Konfiguracja HAProxy jest do\u015b\u0107 prostym procesem. W zasadzie wszystko, co musisz zrobi\u0107, to poinformowa\u0107 HAProxy, jakie po\u0142\u0105czenia powinien nas\u0142uchiwa\u0107 i dok\u0105d powinien je przekazywa\u0107.<\/p>\n<p><\/p>\n<p>Robi si\u0119 to przez utworzenie pliku konfiguracyjnego \/etc\/haproxy\/haproxy.cfg z odpowiednimi ustawieniami. Mo\u017cesz poczyta\u0107 o opcjach konfiguracyjnych HAProxy <noindex><a rel=\"nofollow\" href=\"https:\/\/cbonte.github.io\/haproxy-dconv\/2.0\/configuration.html\">na stronie dokumentacji<\/a><\/noindex>, je\u015bli chcesz dowiedzie\u0107 si\u0119 o tym wi\u0119cej.<\/p>\n<p><\/p>\n<h2 id=\"balansirovka-nagruzki-na-transportnom-urovne-layer-4\">Load balancing na poziomie transportowym (warstwa 4)<\/h2>\n<p><\/p>\n<p>Zaczniemy od podstawowej konfiguracji. Utw\u00f3rz nowy plik konfiguracyjny, na przyk\u0142ad, u\u017cywaj\u0105c <strong>vi<\/strong> polecenia poni\u017cej:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo vi \/etc\/haproxy\/haproxy.cfg<\/code><\/pre>\n<p><\/p>\n<p>Dodaj do pliku nast\u0119puj\u0105ce sekcje. Zamie\u0144 <strong>server_name<\/strong> na to, co powinno identyfikowa\u0107 Twoje serwery na stronie statystyk, a <strong>private_ip<\/strong> na prywatne adresy IP serwer\u00f3w, na kt\u00f3re chcesz kierowa\u0107 ruch webowy. Mo\u017cesz sprawdzi\u0107 prywatne adresy IP <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.upcloud.com\/networks\/private?_ga=2.194047085.1141044831.1595511160-752947894.1595511160\">w panelu sterowania UpCloud<\/a><\/noindex> i na zak\u0142adce <em>Private network<\/em> w menu <em>Sie\u0107<\/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 definiuje load balancer na poziomie transportowym (warstwa 4) z zewn\u0119trzn\u0105 nazw\u0105 http_front, nas\u0142uchuj\u0105c\u0105 na porcie 80, kt\u00f3ra nast\u0119pnie kieruje ruch do domy\u015blnego backendu o nazwie http_back. Dodatkowe statystyki \/haproxy?stats \u0142\u0105cz\u0105 stron\u0119 statystyk pod wskazanym adresem.<\/p>\n<p><\/p>\n<h2 id=\"razlichnye-algoritmy-balansirovki-nagruzki\">R\u00f3\u017cne algorytmy load balancingu.<\/h2>\n<p><\/p>\n<p>Okre\u015blenie serwer\u00f3w w sekcji backend umo\u017cliwia HAProxy wykorzystanie tych serwer\u00f3w do r\u00f3wnowa\u017cenia obci\u0105\u017cenia zgodnie z algorytmem round robin, kiedy to mo\u017cliwe.<\/p>\n<p><\/p>\n<p>Algorytmy load balancingu s\u0142u\u017c\u0105 do okre\u015blenia, na kt\u00f3ry serwer w backendzie przesy\u0142ane jest ka\u017cde po\u0142\u0105czenie. Oto niekt\u00f3re przydatne opcje:<\/p>\n<p><\/p>\n<ul>\n<li><strong>Roundrobin:<\/strong> ka\u017cdy serwer jest u\u017cywany na przemian zgodnie ze swoim ci\u0119\u017carem. To najp\u0142ynniejszy i najuczciwszy algorytm, w kt\u00f3rym czas przetwarzania przez serwery pozostaje r\u00f3wnomiernie roz\u0142o\u017cony. Algorytm ten jest dynamiczny, co pozwala na dostosowywanie ci\u0119\u017caru serwera na bie\u017c\u0105co.<\/li>\n<li><strong>Leastconn:<\/strong> serwer z najmniejsz\u0105 liczb\u0105 po\u0142\u0105cze\u0144 jest wybierany. Cykl prze\u0142\u0105czania jest realizowany mi\u0119dzy serwerami o jednakowym obci\u0105\u017ceniu. Zaleca si\u0119 stosowanie tego algorytmu dla d\u0142ugich sesji, takich jak LDAP, SQL, TSE itp., ale nie nadaje si\u0119 on do kr\u00f3tkich sesji, takich jak HTTP.<\/li>\n<li><strong>Pierwszy:<\/strong> pierwszy serwer z dost\u0119pnymi slotami na po\u0142\u0105czenia otrzymuje po\u0142\u0105czenie. Serwery s\u0105 wybierane od najni\u017cszego identyfikatora numerycznego do najwy\u017cszego, co domy\u015blnie odpowiada pozycji serwera w farmie. Gdy server osi\u0105gnie warto\u015b\u0107 maxconn, jest stosowany nast\u0119pny serwer.<\/li>\n<li><strong>\u0179r\u00f3d\u0142o:<\/strong> Adres IP \u017ar\u00f3d\u0142a jest haszowany i dzielony przez ca\u0142kowit\u0105 wag\u0119 uruchomionych serwer\u00f3w, aby okre\u015bli\u0107, kt\u00f3ry serwer ma obs\u0142ugiwa\u0107 \u017c\u0105danie. W ten spos\u00f3b ten sam adres IP klienta zawsze przypisany b\u0119dzie do tego samego serwera, o ile serwery pozostaj\u0105 niezmienne.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"nastroyka-balansirovki-nagruzki-na-prikladnom-urovne-layer-7\">Konfiguracja r\u00f3wnowa\u017cenia obci\u0105\u017cenia na poziomie aplikacji (warstwa 7)<\/h2>\n<p><\/p>\n<p>Kolejna dost\u0119pna opcja to skonfigurowanie r\u00f3wnowa\u017cnika obci\u0105\u017cenia do pracy na poziomie aplikacji (warstwa 7), co jest przydatne, gdy cz\u0119\u015bci Twojej aplikacji internetowej znajduj\u0105 si\u0119 na r\u00f3\u017cnych hostach. Mo\u017cna to osi\u0105gn\u0105\u0107 poprzez regulowanie przekazywania po\u0142\u0105cze\u0144, na przyk\u0142ad wed\u0142ug URL.<\/p>\n<p><\/p>\n<p>Otw\u00f3rz plik konfiguracyjny HAProxy za pomoc\u0105 edytora tekstu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo vi \/etc\/haproxy\/haproxy.cfg<\/code><\/pre>\n<p><\/p>\n<p>Nast\u0119pnie skonfiguruj segmenty frontend i backend zgodnie z poni\u017cszym przyk\u0142adem:<\/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 og\u0142asza regu\u0142\u0119 ACL o nazwie url_blog, kt\u00f3ra jest stosowana do wszystkich po\u0142\u0105cze\u0144 z \u015bcie\u017ckami rozpoczynaj\u0105cymi si\u0119 od \/blog. use_backend okre\u015bla, \u017ce po\u0142\u0105czenia spe\u0142niaj\u0105ce kryterium url_blog powinny by\u0107 obs\u0142ugiwane przez backend o nazwie blog_back, a wszystkie pozosta\u0142e \u017c\u0105dania s\u0105 obs\u0142ugiwane przez domy\u015blny backend.<\/p>\n<p><\/p>\n<p>Po stronie backendu konfiguracja ustawia dwie grupy serwer\u00f3w: http_back, jak wcze\u015bniej, oraz now\u0105, nazwan\u0105 blog_back, kt\u00f3ra obs\u0142uguje po\u0142\u0105czenia z example.com\/blog.<\/p>\n<p><\/p>\n<p>Po dokonaniu zmian w ustawieniach zapisz plik i uruchom ponownie HAProxy za pomoc\u0105 nast\u0119puj\u0105cego polecenia:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo systemctl restart haproxy<\/code><\/pre>\n<p><\/p>\n<p>Je\u015bli podczas uruchamiania otrzyma\u0142e\u015b jakiekolwiek ostrze\u017cenia lub komunikaty o b\u0142\u0119dach, sprawd\u017a konfiguracj\u0119 pod k\u0105tem ich obecno\u015bci i upewnij si\u0119, \u017ce stworzy\u0142e\u015b wszystkie wymagane pliki i foldery, a nast\u0119pnie spr\u00f3buj ponownie uruchomi\u0107.<\/p>\n<p><\/p>\n<h2 id=\"testirovanie-nastroyki\">Testowanie konfiguracji<\/h2>\n<p><\/p>\n<p>Gdy HAProxy jest skonfigurowany i uruchomiony, otw\u00f3rz publiczny adres IP serwera balancera obci\u0105\u017cenia w przegl\u0105darce i sprawd\u017a, czy poprawnie po\u0142\u0105czy\u0142e\u015b si\u0119 z backendem. Parametr stats uri w konfiguracji tworzy stron\u0119 statystyki pod wskazanym adresem.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">http:\/\/load_balancer_public_ip\/haproxy?stats<\/code><\/pre>\n<p><\/p>\n<p>Kiedy wczytujesz stron\u0119 statystyki, je\u015bli wszystkie twoje serwery s\u0105 wy\u015bwietlane na zielono, konfiguracja powiod\u0142a si\u0119!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Instalacja load balancera HAProxy na CentOS\" src=\"\/wp-content\/uploads\/2020\/07\/ce912c5824d0294537b984fe04bdcc8b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Strona statystyki zawiera przydatne informacje do \u015bledzenia twoich host\u00f3w internetowych, w tym czas pracy\/przestoju oraz liczb\u0119 sesji. Je\u015bli serwer jest oznaczony na czerwono, upewnij si\u0119, \u017ce serwer jest w\u0142\u0105czony i \u017ce mo\u017cesz go pingowa\u0107 z maszyny balancera obci\u0105\u017cenia.<\/p>\n<p><\/p>\n<p>Je\u015bli tw\u00f3j balancer obci\u0105\u017cenia nie odpowiada, upewnij si\u0119, \u017ce po\u0142\u0105czenia HTTP nie s\u0105 blokowane przez zapor\u0119 ogniow\u0105. Upewnij si\u0119 r\u00f3wnie\u017c, \u017ce HAProxy dzia\u0142a, u\u017cywaj\u0105c poni\u017cszej komendy:<\/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\">Ochrona strony statystyki has\u0142em<\/h2>\n<p><\/p>\n<p>Jednak\u017ce, je\u015bli strona statystyki jest po prostu umieszczona w frontendzie, to jest otwarta dla wszystkich, co mo\u017ce nie by\u0107 zbyt dobrym pomys\u0142em. Zamiast tego mo\u017cesz przypisa\u0107 jej w\u0142asny numer portu, dodaj\u0105c poni\u017cszy przyk\u0142ad na ko\u0144cu swojego pliku haproxy.cfg. Zast\u0105p <strong>nazwa u\u017cytkownika<\/strong> i <strong>has\u0142o<\/strong> czym\u015b bezpiecznym:<\/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 dodaniu nowej grupy s\u0142uchaczy usu\u0144 star\u0105 link\u0119 do stats uri z grupy frontend. Kiedy sko\u0144czysz, zapisz plik i uruchom ponownie HAProxy.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo systemctl restart haproxy<\/code><\/pre>\n<p><\/p>\n<p>Nast\u0119pnie ponownie otw\u00f3rz balancer obci\u0105\u017cenia z nowym numerem portu i zaloguj si\u0119 za pomoc\u0105 nazwy u\u017cytkownika i has\u0142a, kt\u00f3re poda\u0142e\u015b w pliku konfiguracyjnym.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">http:\/\/load_balancer_public_ip:8181<\/code><\/pre>\n<p><\/p>\n<p>Upewnij si\u0119, \u017ce wszystkie twoje serwery nadal s\u0105 wy\u015bwietlane na zielono, a nast\u0119pnie otw\u00f3rz tylko IP balancera obci\u0105\u017cenia bez \u017cadnych numer\u00f3w port\u00f3w w swojej przegl\u0105darce.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">http:\/\/load_balancer_public_ip\/<\/code><\/pre>\n<p><\/p>\n<p>Je\u015bli na Twoich wewn\u0119trznych serwerach istnieje jakiekolwiek zr\u00f3\u017cnicowanie stron docelowych, zauwa\u017cysz, \u017ce za ka\u017cdym razem, gdy od\u015bwie\u017casz stron\u0119, otrzymujesz odpowied\u017a od innego hosta. Mo\u017cesz wypr\u00f3bowa\u0107 r\u00f3\u017cne algorytmy r\u00f3wnowa\u017cenia obci\u0105\u017cenia w sekcji konfiguracji lub zapozna\u0107 si\u0119 z <noindex><a rel=\"nofollow\" href=\"https:\/\/cbonte.github.io\/haproxy-dconv\/\">pe\u0142n\u0105 dokumentacj\u0105<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"zaklyuchenie-balansirovschik-nagruzki-haproxy\">Podsumowanie: r\u00f3wnowa\u017cnik obci\u0105\u017cenia HAProxy<\/h2>\n<p><\/p>\n<p>Gratulacje z okazji pomy\u015blnej konfiguracji r\u00f3wnowa\u017cnika obci\u0105\u017cenia HAProxy! Nawet przy podstawowej konfiguracji r\u00f3wnowa\u017cenia obci\u0105\u017cenia mo\u017cesz znacznie zwi\u0119kszy\u0107 wydajno\u015b\u0107 i dost\u0119pno\u015b\u0107 swojej aplikacji internetowej. Ten przewodnik jest tylko wprowadzeniem do r\u00f3wnowa\u017cenia obci\u0105\u017cenia z wykorzystaniem HAProxy, kt\u00f3re potrafi znacznie wi\u0119cej, ni\u017c mo\u017cna opisa\u0107 w kr\u00f3tkiej instrukcji konfiguracji. Zach\u0119camy do eksperymentowania z r\u00f3\u017cnymi konfiguracjami z u\u017cyciem <noindex><a rel=\"nofollow\" href=\"https:\/\/cbonte.github.io\/haproxy-dconv\/2.0\/configuration.html\">obszernej dokumentacji<\/a><\/noindex>, dost\u0119pnej dla HAProxy, a nast\u0119pnie przej\u015b\u0107 do planowania r\u00f3wnowa\u017cenia obci\u0105\u017cenia dla swojego \u015brodowiska produkcyjnego.<\/p>\n<p><\/p>\n<p>U\u017cywaj\u0105c kilku host\u00f3w do ochrony swojej us\u0142ugi internetowej za pomoc\u0105 nadmiaru mocy, sam r\u00f3wnowa\u017cnik obci\u0105\u017cenia nadal mo\u017ce stanowi\u0107 punkt awarii. Mo\u017cesz jeszcze bardziej zwi\u0119kszy\u0107 wysok\u0105 dost\u0119pno\u015b\u0107, instaluj\u0105c p\u0142ywaj\u0105cy adres IP mi\u0119dzy kilkoma r\u00f3wnowa\u017cnikami obci\u0105\u017cenia. Wi\u0119cej informacji na ten temat znajdziesz w naszej <noindex><a rel=\"nofollow\" href=\"https:\/\/upcloud.com\/community\/tutorials\/floating-ip-addresses\/\">artyku\u0142 o p\u0142ywaj\u0105cych adresach IP na UpCloud<\/a><\/noindex>.<\/p>\n<p>Wi\u0119cej o kursie <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/KbNT\/\">\u201eAdministrator Linux. Wirtualizacja i klastrowanie\u201d<\/a><\/noindex>***<\/p>\n<p>\u0179r\u00f3d\u0142o: <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.1.1 - 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\/pl\/blog\/administrirovanie\/ustanavlivaem-balansirovshhik-nagruzki-haproxy-na-centos\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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\udd47Instalacja r\u00f3wnowa\u017cnika obci\u0105\u017cenia HAProxy na CentOS | ProHoster","description":"T\u0142umaczenie artyku\u0142u przygotowano w oczekiwaniu na rozpocz\u0119cie kursu \u201eAdministrator Linux.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/ustanavlivaem-balansirovshhik-nagruzki-haproxy-na-centos","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/89711","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=89711"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/89711\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/89713"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=89711"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=89711"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=89711"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}