{"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>T\u0142umaczenie artyku\u0142u przygotowane w przededniu rozpocz\u0119cia kursu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/KbNT\/\">\u00abAdministrator Linux. Wirtualizacja i klastrowanie\u00bb<\/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 popularne rozwi\u0105zanie do poziomego skalowania aplikacji internetowych na wielu hostach, zapewniaj\u0105ce u\u017cytkownikom jednolity punkt dost\u0119pu do us\u0142ug. <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 r\u00f3wnie\u017c wysok\u0105 dost\u0119pno\u015b\u0107 i funkcjonalno\u015b\u0107 proxy.<\/p>\n<p><\/p>\n<p>HAProxy d\u0105\u017cy do optymalizacji wykorzystania zasob\u00f3w, maksymalizacji przepustowo\u015bci, minimalizacji czasu odpowiedzi oraz unikania obci\u0105\u017cenia pojedynczych zasob\u00f3w. Mo\u017ce by\u0107 zainstalowane na wielu dystrybucjach Linuxa, takich jak CentOS 8, na kt\u00f3rym b\u0119dziemy si\u0119 skupia\u0107 w tym przewodniku, a tak\u017ce na systemach <noindex><a rel=\"nofollow\" href=\"https:\/\/upcloud.com\/community\/tutorials\/haproxy-load-balancer-debian\/\">Debian 8<\/a><\/noindex> \u0438 <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 jest szczeg\u00f3lnie odpowiedni dla witryn internetowych o bardzo wysokim ruchu i dlatego cz\u0119sto jest u\u017cywany do zwi\u0119kszenia niezawodno\u015bci i wydajno\u015bci konfiguracji us\u0142ug internetowych z wieloma serwerami. W tym przewodniku przedstawiono kroki na ustawienie HAProxy jako load balancer na chmurowym ho\u015bcie CentOS 8, kt\u00f3ry nast\u0119pnie kieruje ruch do Twoich serwer\u00f3w WWW.<\/p>\n<p><\/p>\n<p>Aby uzyska\u0107 najlepsze wyniki, musisz mie\u0107 co najmniej dwa serwery WWW oraz serwer do r\u00f3wnowa\u017cenia obci\u0105\u017cenia. Na serwerach WWW powinien by\u0107 uruchomiony przynajmniej podstawowy serwis internetowy, taki jak nginx lub httpd, aby m\u00f3c sprawdzi\u0107 r\u00f3wnowa\u017cenie obci\u0105\u017cenia 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 jest szybko rozwijaj\u0105c\u0105 si\u0119 aplikacj\u0105 open source, dystrybucja dost\u0119pna w standardowych repozytoriach CentOS mo\u017ce nie by\u0107 najnowsz\u0105 wersj\u0105. Aby sprawdzi\u0107 aktualn\u0105 wersj\u0119, wykonaj nast\u0119puj\u0105ce 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: dwie najnowsze wspierane wersje oraz jedn\u0105 starsz\u0105, kt\u00f3ra wci\u0105\u017c otrzymuje aktualizacje krytyczne. 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 poradniku zainstalujemy najnowsz\u0105 stabiln\u0105 wersj\u0119 2.0, kt\u00f3ra nie by\u0142a jeszcze dost\u0119pna w standardowych repozytoriach w momencie pisania poradnika. B\u0119dziesz musia\u0142 zainstalowa\u0107 j\u0105 ze \u017ar\u00f3d\u0142a. Najpierw sprawd\u017a, czy 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 \u017ar\u00f3d\u0142owego:<\/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 system:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">make TARGET=linux-glibc<\/code><\/pre>\n<p><\/p>\n<p>A 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 potrzebuje dodatkowych dzia\u0142a\u0144, aby dzia\u0142a\u0107 poprawnie. Kontynuujemy 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>Dodaj nast\u0119puj\u0105ce katalogi i plik statystyk dla zapis\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 dla 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 do pliku, aby skrypt m\u00f3g\u0142 si\u0119 uruchamia\u0107, 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 automatyczne uruchamianie przy starcie 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 r\u00f3wnie\u017c 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 wersja 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 sieciowa w CentOS 8 domy\u015blnie jest do\u015b\u0107 restrykcyjna dla tego projektu. U\u017cyj poni\u017cszych komend, aby zezwoli\u0107 na niezb\u0119dne us\u0142ugi i ponownie uruchomi\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 balancer\u00f3w obci\u0105\u017cenia<\/h2>\n<p><\/p>\n<p>Konfiguracja HAProxy to do\u015b\u0107 prosty proces. W zasadzie wystarczy, \u017ce powiesz HAProxy, jakie po\u0142\u0105czenia ma nas\u0142uchiwa\u0107 i dok\u0105d je retransmitowa\u0107.<\/p>\n<p><\/p>\n<p>Robi si\u0119 to poprzez stworzenie pliku konfiguracyjnego \/etc\/haproxy\/haproxy.cfg z odpowiednimi ustawieniami. Mo\u017cesz przeczyta\u0107 o parametrach konfiguracyjnych HAProxy <noindex><a rel=\"nofollow\" href=\"https:\/\/cbonte.github.io\/haproxy-dconv\/2.0\/configuration.html\">w dokumentacji<\/a><\/noindex>, je\u015bli chcesz dowiedzie\u0107 si\u0119 wi\u0119cej.<\/p>\n<p><\/p>\n<h2 id=\"balansirovka-nagruzki-na-transportnom-urovne-layer-4\">Balansowanie obci\u0105\u017cenia na poziomie transportu (warstwa 4)<\/h2>\n<p><\/p>\n<p>Zacznijmy od podstawowej konfiguracji. Stw\u00f3rz nowy plik konfiguracyjny, na przyk\u0142ad, u\u017cywaj\u0105c <strong>vi<\/strong> z poni\u017csz\u0105 komend\u0105:<\/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. Zast\u0105p <strong>server_name<\/strong> tym, co powinno wywo\u0142ywa\u0107 Twoje serwery na stronie statystyki, a <strong>private_ip<\/strong> \u2014 prywatnymi adresami IP serwer\u00f3w, na kt\u00f3re chcesz kierowa\u0107 ruch internetowy. 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\">na panelu zarz\u0105dzania UpCloud<\/a><\/noindex> i na zak\u0142adce <em>Prywatna sie\u0107<\/em> w menu <em>Sie\u0107\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<\/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>Definiuje to balansuj\u0105cy obci\u0105\u017cenie transportowego poziomu (warstwa 4) o zewn\u0119trznej nazwie http_front, nas\u0142uchuj\u0105cy na porcie 80, kt\u00f3ry nast\u0119pnie kieruje ruch do domy\u015blnego backendu o nazwie http_back. Dodatkowa statystyka \/haproxy?stats pod\u0142\u0105cza stron\u0119 statystyk pod wskazanym adresem.<\/p>\n<p><\/p>\n<h2 id=\"razlichnye-algoritmy-balansirovki-nagruzki\">R\u00f3\u017cne algorytmy balansowania obci\u0105\u017cenia.<\/h2>\n<p><\/p>\n<p>Okre\u015blenie serwer\u00f3w w sekcji backendu pozwala HAProxy na wykorzystanie tych serwer\u00f3w do balansowania obci\u0105\u017cenia zgodnie z algorytmem okr\u0119\u017cnym, gdy to mo\u017cliwe.<\/p>\n<p><\/p>\n<p>Algorytmy balansowania s\u0105 u\u017cywane do okre\u015blenia, na kt\u00f3ry serwer w zapleczu przekazywane jest ka\u017cde po\u0142\u0105czenie. Oto kilka przydatnych opcji:<\/p>\n<p><\/p>\n<ul>\n<li><strong>Roundrobin:<\/strong> ka\u017cdy serwer jest wykorzystywany na zmian\u0119 zgodnie ze swoim wag\u0105. Jest to najp\u0142ynniejszy i najsprawiedliwszy algorytm, gdy czas przetwarzania serwer\u00f3w pozostaje r\u00f3wnomiernie roz\u0142o\u017cony. Algorytm ten jest dynamiczny, co pozwala na regulacj\u0119 wagi serwera w czasie rzeczywistym.<\/li>\n<li><strong>Leastconn:<\/strong> wybierany jest serwer z najmniejsz\u0105 liczb\u0105 po\u0142\u0105cze\u0144. Wykonywane jest cykliczne przeszukiwanie pomi\u0119dzy serwerami o jednakowym obci\u0105\u017ceniu. Korzystanie z tego algorytmu jest zalecane dla d\u0142ugich sesji, takich jak LDAP, SQL, TSE itd., niemniej jednak nie jest on zbyt odpowiedni dla kr\u00f3tkich sesji, takich jak HTTP.<\/li>\n<li><strong>First:<\/strong> pierwszy serwer z dost\u0119pnymi slotami na po\u0142\u0105czenie otrzymuje to po\u0142\u0105czenie. Serwery s\u0105 wybierane od najni\u017cszego identyfikatora numerycznego do najwy\u017cszego, co domy\u015blnie odpowiada pozycji serwera w farmie. Gdy serwer osi\u0105gnie warto\u015b\u0107 maxconn, wykorzystywany jest nast\u0119pny serwer.<\/li>\n<li><strong>\u0179r\u00f3d\u0142o:<\/strong> Adres IP \u017ar\u00f3d\u0142owy jest haszowany i dzielony na ca\u0142kowity ci\u0119\u017car uruchomionych serwer\u00f3w, aby okre\u015bli\u0107, kt\u00f3ry serwer otrzyma \u017c\u0105danie. W ten spos\u00f3b ten sam adres IP klienta zawsze b\u0119dzie przypisany temu samemu serwerowi, podczas gdy 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>Kolejn\u0105 dost\u0119pn\u0105 opcj\u0105 jest 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 regulacj\u0119 przekazywania po\u0142\u0105cze\u0144, na przyk\u0142ad wed\u0142ug URL.<\/p>\n<p><\/p>\n<p>Otw\u00f3rz plik konfiguracyjny HAProxy w edytorze 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 definiuje regu\u0142\u0119 ACL o nazwie url_blog, kt\u00f3ra dotyczy wszystkich po\u0142\u0105cze\u0144 z \u015bcie\u017ckami zaczynaj\u0105cymi si\u0119 od \/blog. Use_backend okre\u015bla, \u017ce po\u0142\u0105czenia spe\u0142niaj\u0105ce warunek url_blog powinny by\u0107 obs\u0142ugiwane przez backend o nazwie blog_back, a wszystkie pozosta\u0142e zapytania s\u0105 przetwarzane przez backend domy\u015blny.<\/p>\n<p><\/p>\n<p>Od strony 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 zmianie ustawie\u0144 zapisz plik i uruchom ponownie HAProxy za pomoc\u0105 nast\u0119puj\u0105cej komendy:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo systemctl restart haproxy<\/code><\/pre>\n<p><\/p>\n<p>Je\u015bli podczas uruchamiania pojawi\u0142y si\u0119 jakiekolwiek ostrze\u017cenia lub komunikaty o b\u0142\u0119dach, sprawd\u017a konfiguracj\u0119 pod ich k\u0105tem i upewnij si\u0119, \u017ce utworzy\u0142e\u015b wszystkie niezb\u0119dne 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 skonfigurowane i uruchomione, otw\u00f3rz publiczny adres IP serwera r\u00f3wnowa\u017cnika obci\u0105\u017ce\u0144 w przegl\u0105darce i sprawd\u017a, czy prawid\u0142owo 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 \u0142adujesz stron\u0119 statystyk, je\u015bli wszystkie Twoje serwery s\u0105 oznaczone na zielono, to konfiguracja przebieg\u0142a pomy\u015blnie!<\/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 statystyk zawiera przydatne informacje do \u015bledzenia Twoich host\u00f3w internetowych, w tym czas pracy\/przerwy 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 balansuj\u0105cej.<\/p>\n<p><\/p>\n<p>Je\u015bli Tw\u00f3j balansuj\u0105cy ruch serwer nie odpowiada, upewnij si\u0119, \u017ce po\u0142\u0105czenia HTTP nie s\u0105 blokowane przez zapor\u0119 ogniow\u0105. Sprawd\u017a r\u00f3wnie\u017c, czy HAProxy dzia\u0142a za pomoc\u0105 poni\u017cszego polecenia:<\/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 statystyk has\u0142em<\/h2>\n<p><\/p>\n<p>Jednak je\u015bli strona statystyk jest po prostu umieszczona w interfejsie frontendowym, jest otwarta na og\u00f3lny podgl\u0105d, co mo\u017ce nie by\u0107 najlepszym 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>username<\/strong> \u0438 <strong>password<\/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 odbiorc\u00f3w usu\u0144 star\u0105 wtyczk\u0119 stats uri z grupy frontendowej. Po zako\u0144czeniu 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 otw\u00f3rz ponownie load balancer z nowym numerem portu i zaloguj si\u0119 przy u\u017cyciu nazwy u\u017cytkownika i has\u0142a, kt\u00f3re wskaza\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 wci\u0105\u017c wy\u015bwietlaj\u0105 si\u0119 na zielono, a nast\u0119pnie otw\u00f3rz tylko IP load balancera bez \u017cadnych numer\u00f3w port\u00f3w w 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 jest 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 konfiguracyjnej 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: load balancer HAProxy<\/h2>\n<p><\/p>\n<p>Gratulacje z udanej konfiguracji load balancera HAProxy! Nawet przy podstawowej konfiguracji r\u00f3wnowa\u017cenia obci\u0105\u017cenia mo\u017cna znacz\u0105co zwi\u0119kszy\u0107 wydajno\u015b\u0107 i dost\u0119pno\u015b\u0107 swojej aplikacji internetowej. Ten przewodnik jest jedynie wprowadzeniem do r\u00f3wnowa\u017cenia obci\u0105\u017cenia za pomoc\u0105 HAProxy, kt\u00f3re ma znacznie wi\u0119cej mo\u017cliwo\u015bci, ni\u017c mo\u017cna opisa\u0107 w kr\u00f3tkiej instrukcji konfiguracyjnej. Zach\u0119camy do eksperymentowania z r\u00f3\u017cnymi konfiguracjami przy u\u017cyciu <noindex><a rel=\"nofollow\" href=\"https:\/\/cbonte.github.io\/haproxy-dconv\/2.0\/configuration.html\">obszernych dokument\u00f3w<\/a><\/noindex>, dost\u0119pnych dla HAProxy, a nast\u0119pnie do zaplanowania r\u00f3wnowa\u017cenia obci\u0105\u017cenia dla swojego \u015brodowiska produkcyjnego.<\/p>\n<p><\/p>\n<p>U\u017cywanie wielu host\u00f3w do ochrony swojego serwisu internetowego za pomoc\u0105 zapasowej mocy, sam load balancer wci\u0105\u017c mo\u017ce by\u0107 punktem awarii. Mo\u017cesz jeszcze bardziej zwi\u0119kszy\u0107 wysok\u0105 dost\u0119pno\u015b\u0107, konfiguruj\u0105c p\u0142ywaj\u0105cy adres IP pomi\u0119dzy kilkoma load balancerami. Mo\u017cesz dowiedzie\u0107 si\u0119 wi\u0119cej o tym w naszej <noindex><a rel=\"nofollow\" href=\"https:\/\/upcloud.com\/community\/tutorials\/floating-ip-addresses\/\">artyku\u0142 na temat p\u0142ywaj\u0105cych adres\u00f3w IP na UpCloud<\/a><\/noindex>.<\/p>\n<p>Wi\u0119cej informacji o kursie <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/KbNT\/\">\u00abAdministrator Linux. Wirtualizacja i klastrowanie\u00bb<\/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.0.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.0.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 balancera obci\u0105\u017cenia HAProxy na CentOS | ProHoster","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.","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}]}}