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 za pomocą Nginx.
Konfiguracja laboratorium
3 instancje serwerów CentOS 7, jak pokazano
Nazwa hosta Adresy IPload_balancer 3.17.12.132
serwer_01 3.19.229.234
serwer_02 3.17.9.217
Krok 1: Edytuj plik /etc/hosts dla systemu 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 internetowych, jak pokazano
$ vim /etc/hosty3.19.229.234 serwer_01
3.17.9.217 serwer-02
Po zakończeniu zapisz zmiany i wyjdź z pliku konfiguracyjnego.
Teraz przejdź do każdego z serwerów internetowych i zaktualizuj /etc/hosty plik z adresem IP i nazwą hosta load balancera
3.17.12.132 równoważenie obciążeniaNastępnie potwierdź, że możesz wysłać pakiet 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 load balancera.
Idealny ! wszystkie serwery mogą komunikować się z load balancerem!
Krok 2: Zainstaluj i skonfiguruj HA Proxy na module 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 haproxy
Po pomyślnej instalacji przejdź do katalogu haproxy.
# cd /etc/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ęna.
# mv haproxy.cfg haproxy.cfg.BakNastępnie kontynuuj i otwórz plik konfiguracyjny
vim haproxy.cfgUpewnij się, że dokonałeś modyfikacji, jak pokazano
#---------------------------------------------------------------------# Ustawienia ogólne
#---------------------------------------------------------------------
światowy
log 127.0.0.1 lokalny2 #Konfiguracja dziennika
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
użytkownik haproxy #Haproxy działa w ramach użytkownika i grupy „haproxy”
grupa haproxy
demon
# włącz stats unix socket
gniazdo statystyk /var/lib/haproxy/stats
#---------------------------------------------------------------------
# typowe wartości domyślne, zgodnie z którymi będą działać wszystkie sekcje 'listen' i 'backend'
# użyj, jeśli nie jest wskazany w ich bloku
#---------------------------------------------------------------------
domyślne
tryb http
log globalnie
opcja httplog
opcja dontlognull
opcja http-serwer-zamknij
opcja forwardfor z wyjątkiem 127.0.0.0/8
opcja ponowna wysyłka
ponownych prób 3
limit czasu żądania http 10s
kolejka po przekroczeniu limitu czasu 1m
limit czasu połączenia 10s
klient limitu czasu 1m
serwer limitu czasu 1m
timeout http-utrzymaj-na żywo 10s
sprawdzenie limitu czasu 10s
maxconn 3000
#---------------------------------------------------------------------
#Konfiguracja monitorowania HAProxy
#---------------------------------------------------------------------
słuchać haproxy3-monitoring *:8080 #Haproxy Monitoring uruchomiony na porcie 8080
tryb http
opcja forwardfor
opcja httpzamknij
statystyki włączone
statystyki pokazują legendy
statystyki odświeżają się 5s
stats uri /stats #URL do monitorowania HAProxy
statystyki królestwo Haproxy\ Statistics
stats auth Hasło123: Hasło123#Użytkownik i Hasło do logowania do panelu monitorowania
administrator statystyk, jeśli TRUE
default_backend app-main # To jest opcjonalnie do monitorowania zaplecza
#---------------------------------------------------------------------
# Konfiguracja frontendu
#---------------------------------------------------------------------
główny frontend
wiązanie *:80
opcja http-serwer-zamknij
opcja forwardfor
default_backend aplikacja-główna
#---------------------------------------------------------------------
# BackEnd round robin jako algorytm równowagi
#---------------------------------------------------------------------
Główna aplikacja zaplecza
Balance roundrobin #Algorytm równowagi
opcja httpchk HEAD / HTTP/1.1\r\nHost:\lokalny host
#Sprawdź, czy aplikacja serwera działa i jest zdrowa - kod stanu 200
serwer serwer_01 3.19.229.234:80 sprawdź #Nginx1
serwer serwer_02 3.17.9.217:80 sprawdź #Nginx2
Pamiętaj, aby zmodyfikować nazwę hosta i adresy IP serwerów internetowych, jak wskazano w ostatnich dwóch wierszach. Zapisz zmiany i wyjdź.
Następnym krokiem będzie skonfigurowanie Rsyslog, aby móc rejestrować statystyki HAProxy.
# vim /etc/rsyslog.konfUpewnij się, że odkomentowałeś poniższe linie, aby umożliwić połączenia UDP
$ModLoad imudp$UDPServerRun 514
Następnie kontynuuj i utwórz nowy plik konfiguracyjny haproxy.konf
# vim /etc/rsyslog.d/Hproxy.konfWklej następujące linie, zapisz i wyjdź
lokalny2.=informacje /var/log/haproxy-access.dziennik #Dla dziennika dostępulokalny2.uwaga /var/log/haproxy-info.log #Informacje o usłudze — zaplecze, system równoważenia obciążenia
Aby zmiany zaczęły obowiązywać, uruchom ponownie demona rsyslog, jak pokazano:
# systemctl restart rsyslogNastępnie uruchom i włącz HAProxy
# systemctl start rsyslog# systemctl włącz rsyslog
Sprawdź, czy HAProxy działa is
# status systemctl rsyslog
Krok 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 epel-releaseAby zainstalować Nginx, uruchom polecenie:
# mniam zainstaluj nginxNastępnie uruchom i włącz Nginx
# systemctl uruchom nginx# systemctl włącz nginx
Następnie zmodyfikujemy indeks.plik html w obu przypadkach, aby zademonstrować lub zasymulować, w jaki sposób load balancer jest w stanie rozłożyć ruch sieciowy na oba serwery.
Dla server_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 restart 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ś otrzymywać naprzemienne dane wyjściowe na terminalu pokazujące wartość indeksu.html z server_01 i server_02
Teraz przetestujmy za pomocą przeglądarki internetowej. Przeglądaj adres IP swojego load balancera
http://adres-IP-równoważnika-obciążeniaPierwsza strona wyświetli zawartość z dowolnego serwera internetowego
Teraz odśwież stronę i sprawdź, czy wyświetla zawartość z innego serwera WWW web
Idealny ! Równoważenie obciążenia rozkłada ruch IP równo między dwa serwery internetowe !
To kończy ten samouczek, jak zainstalować i skonfigurować HAProxy na CentOS 8. Twoja opinia będzie bardzo ceniona.