Jak skonfigurować HAProxy jako moduł równoważenia obciążenia dla Nginx w CentOS 8

Jak Skonfigurowac Haproxy Jako Modul Rownowazenia Obciazenia Dla Nginx W Centos 8



High Availability Proxy, w skrócie HAProxy, to lekki i szybki system równoważenia obciążenia, który może również służyć jako serwer proxy. Jako system równoważenia obciążenia odgrywa kluczową rolę w dystrybucji przychodzącego ruchu internetowego na wiele serwerów internetowych przy użyciu określonych kryteriów. W ten sposób zapewnia wysoką dostępność i odporność na awarie w przypadku zbyt wielu jednoczesnych żądań, które mogą przeciążyć pojedynczy serwer WWW.

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ążenia

Nastę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 aktualizacja

Następnie zainstaluj HA Proxy, jak pokazano

# mniam zainstaluj haproxy

Po pomyślnej instalacji przejdź do katalogu haproxy.

# Płyta CD / itp / haproxy

Najlepsza 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.bak

Następnie kontynuuj i otwórz plik konfiguracyjny

dlatego haproxy.cfg

Upewnij 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.conf

Upewnij 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.conf

Wklej następujące wiersze, zapisz i wyjdź

lokalny2.=informacje / było / dziennik / haproxy-access.log #Dla dziennika dostępu
lokalny2.powiadomienie / było / dziennik / haproxy-info.log #For Service Info - Backend, loadbalancer

Aby zmiany odniosły skutek, zrestartuj demona rsyslog, jak pokazano:

# systemctl zrestartuj rsyslog

Następnie uruchom i włącz HAProxy

# systemctl uruchom rsyslog
# systemctl włącz rsyslog

Sprawdź, czy działa HAProxy

# systemctl status 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 aktualizacja

Następnie zainstaluj EPEL (dodatkowe pakiety dla Enterprise Linux)

# mniam zainstaluj ciepłe wydanie

Aby zainstalować Nginx, uruchom polecenie:

# mniam zainstaluj nginx

Nastę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.html

Dla serwera_02

# Echo 'server_02. Hej! Witamy na drugim serwerze WWW' > indeks.html

Aby zmiany zostały wprowadzone, uruchom ponownie Nginx

# systemctl zrestartuj nginx

Krok 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.132

Powinieneś 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ążenia

Na 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.