HaProxy jest używany przez popularne witryny, takie jak Tumblr, GitHub i StackOverflow. W tym przewodniku przeprowadzimy Cię przez proces instalacji HAProxy w konfiguracji serwerów WWW zasilanych przy użyciu Nginx.
Konfiguracja laboratorium
3 instancje serwerów CentOS 7, jak pokazano
Nazwa hosta Adresy IP
load_balancer 3.17.12.132
server_01 3.19.229.234
server_02 3.17.9.217
Krok 1: Edytuj plik /etc/hosts dla modułu równoważenia obciążenia
Aby rozpocząć, zaloguj się do systemu równoważenia obciążenia i zmodyfikuj plik /etc/hosts, aby zawierał nazwy hostów i adresy IP dwóch serwerów WWW, jak pokazano
$ dlatego / itp / zastępy niebieskie
3.19.229.234 serwer_01
3.17.9.217 serwer-02
Po zakończeniu zapisz zmiany i wyjdź z pliku konfiguracyjnego.
Teraz udaj się do każdego z serwerów internetowych i zaktualizuj plik /etc/hosts plik z adresem IP i nazwą hosta systemu równoważenia obciążenia
3.17.12.132 system równoważenia obciążeniaNastępnie potwierdź, że możesz wysłać polecenie ping do systemu równoważenia obciążenia z serwera server_01
I podobnie z server_02
Upewnij się również, że możesz pingować serwery z modułu równoważenia obciążenia.
Doskonały ! wszystkie serwery mogą komunikować się z systemem równoważenia obciążenia!
Krok 2: Zainstaluj i skonfiguruj serwer proxy HA w systemie równoważenia obciążenia
Ponieważ HA Proxy jest łatwo dostępny z oficjalnego repozytorium CentOS, zamierzamy zainstalować go za pomocą menedżera pakietów yum lub dnf.
Ale jak zwykle najpierw zaktualizuj system
# mniam aktualizacjaNastępnie zainstaluj HA Proxy, jak pokazano
# mniam zainstaluj haproxyPo pomyślnej instalacji przejdź do katalogu haproxy.
# Płyta CD / itp / haproxyNajlepsza praktyka wymaga od nas wykonania kopii zapasowej dowolnego pliku konfiguracyjnego przed wprowadzeniem jakichkolwiek modyfikacji. Więc wykonaj kopię zapasową haproxy.cfg plik, zmieniając jego nazwę.
# mv haproxy.cfg haproxy.cfg.bakNastępnie kontynuuj i otwórz plik konfiguracyjny
dlatego haproxy.cfgUpewnij się, że dokonałeś modyfikacji zgodnie z ilustracją
#---------------------------------------------------------------- --------------------# Ustawienia ogólne
#---------------------------------------------------------------- --------------------
światowy
dziennik 127.0.0.1 lokalny2 #Konfiguracja dziennika
chroot / było / lib / haproxy
plik pid / było / biegać / haproxy.pid
maxconn 4000
użytkownik haproxy #Haproxy działający pod użytkownikiem i grupą „haproxy”
grupa haproxy
demon
# włącz stats unix socket
gniazdo statystyk / było / lib / haproxy / statystyki
#---------------------------------------------------------------- --------------------
# wspólne ustawienia domyślne, które będą miały wszystkie sekcje „listen” i „backend”.
# użyj, jeśli nie jest to wskazane w ich bloku
#---------------------------------------------------------------- --------------------
domyślne
tryb http
dziennik globalnie
opcja httplog
opcja dontlognull
opcja http-server-close
przekazywanie opcji dla z wyjątkiem 127.0.0.0 / 8
opcja ponowne wysłanie
ponownych prób 3
limit czasu żądania http 10s
kolejka limitu czasu 1 min
limit czasu połączenia 10s
limit czasu klienta 1 min
przekroczenie limitu czasu serwera 1 min
limit czasu http-keep-alive 10s
kontrola limitu czasu 10s
maxconn 3000
#---------------------------------------------------------------- --------------------
#HAProxy Konfiguracja monitorowania
#---------------------------------------------------------------- --------------------
słuchaj monitorowania haproxy3 * : 8080 #Haproxy Monitoring działa na porcie 8080
tryb http
opcja forwardfor
opcja httpzamknij
statystyki włączyć
statystyki pokazują legendy
odświeżanie statystyk 5s
statystyki ur / statystyki #URL do monitorowania HAProxy
sfera statystyk Haproxy\ Statystyki
stats auth Hasło123: Hasło123 #Użytkownik i Hasło do logowania do pulpitu monitoringu
administrator statystyk jeśli PRAWDZIWE
default_backend aplikacja-główna #Jest to opcjonalne do monitorowania zaplecza
#---------------------------------------------------------------- --------------------
# Konfiguracja frontendu
#---------------------------------------------------------------- --------------------
frontend główny
wiązać * : 80
opcja http-server-close
opcja forwardfor
default_backend aplikacja-główna
#---------------------------------------------------------------- --------------------
# BackEnd round robin jako algorytm równowagi
#---------------------------------------------------------------- --------------------
główna aplikacja zaplecza
bilans okrężny #Algorytm równowagi
opcja httpchk HEAD / HTTP / 1.1 \r\nHost:\host lokalny
#Sprawdź, czy aplikacja serwera działa i jest w dobrym stanie — kod stanu 200
serwer server_01 3.19.229.234: 80 sprawdzać #Nginx1
serwer server_02 3.17.9.217: 80 sprawdzać #Nginx2
Pamiętaj, aby zmodyfikować nazwę hosta i adresy IP serwerów sieciowych, jak wskazano w dwóch ostatnich wierszach. Zapisz zmiany i wyjdź.
Następnym krokiem będzie skonfigurowanie Rsyslog, aby móc logować statystyki HAProxy.
# dlatego / itp / rsyslog.confUpewnij się, że odkomentowałeś poniższe wiersze, aby zezwolić na połączenia UDP
$ModLoad imudp$UDPServerRun 514
Następnie kontynuuj i utwórz nowy plik konfiguracyjny haproxy.conf
# dlatego / itp / rsyslog.d / haproxy.confWklej następujące wiersze, zapisz i wyjdź
lokalny2.=informacje / było / dziennik / haproxy-access.log #Dla dziennika dostępulokalny2.powiadomienie / było / dziennik / haproxy-info.log #For Service Info - Backend, loadbalancer
Aby zmiany odniosły skutek, zrestartuj demona rsyslog, jak pokazano:
# systemctl zrestartuj rsyslogNastępnie uruchom i włącz HAProxy
# systemctl uruchom rsyslog# systemctl włącz rsyslog
Sprawdź, czy działa HAProxy
# systemctl status rsyslogKrok 3: Zainstaluj i skonfiguruj Nginx
Teraz jedyną pozostałą częścią jest instalacja Nginx. Zaloguj się do każdego z serwerów i najpierw zaktualizuj pakiety systemowe:
# mniam aktualizacjaNastępnie zainstaluj EPEL (dodatkowe pakiety dla Enterprise Linux)
# mniam zainstaluj ciepłe wydanieAby zainstalować Nginx, uruchom polecenie:
# mniam zainstaluj nginxNastępnie uruchom i włącz Nginx
# systemctl uruchamia nginx# systemctl włącz nginx
Następnie zmodyfikujemy plik index.html w obu przypadkach, aby zademonstrować lub zasymulować sposób, w jaki system równoważenia obciążenia jest w stanie rozłożyć ruch sieciowy na oba serwery.
Dla serwera_01
# Echo 'server_01. Hej! Witamy na pierwszym serwerze WWW' > indeks.htmlDla serwera_02
# Echo 'server_02. Hej! Witamy na drugim serwerze WWW' > indeks.htmlAby zmiany zostały wprowadzone, uruchom ponownie Nginx
# systemctl zrestartuj nginxKrok 4: Testowanie, czy system równoważenia obciążenia działa
W końcu jesteśmy w punkcie, w którym chcemy sprawdzić, czy konfiguracja działa. Zaloguj się więc do systemu równoważenia obciążenia i wielokrotnie wykonuj polecenie curl
# zwijanie 3.17.12.132Powinieneś otrzymać naprzemienne wyjście na terminalu pokazujące wartość index.html z server_01 i server_02
Teraz przetestujmy za pomocą przeglądarki internetowej. Przeglądaj adres IP swojego systemu równoważenia obciążenia
http: // adres IP modułu równoważenia obciążeniaNa pierwszej stronie będzie wyświetlana treść z dowolnego serwera WWW
Teraz odśwież stronę i sprawdź, czy wyświetla zawartość z innego serwera WWW
Doskonały ! Równoważenie obciążenia polega na równym rozłożeniu ruchu IP między dwa serwery WWW!
To kończy ten samouczek dotyczący instalacji i konfiguracji HAProxy w CentOS 8. Twoja opinia będzie bardzo cenna.