Wyszukiwanie w witrynie

Konfigurowanie równoważenia obciążenia serwerów internetowych za pomocą „POUND” w RHEL/CentOS


POUND to program do równoważenia obciążenia opracowany przez firmę ITSECURITY. Jest to lekkie narzędzie typu open source do odwrotnego proxy, którego można używać jako modułu równoważenia obciążenia serwera internetowego w celu dystrybucji obciążenia między kilkoma serwerami. Istnieje kilka korzyści, jakie POUND daje użytkownikowi końcowemu, które są bardzo wygodne i dobrze spełniają swoje zadanie.

  1. Obsługuje wirtualne hosty.
  2. Konfigurowalne.
  3. Kiedy serwer zaplecza ulegnie awarii lub zostanie przywrócony po awarii, wykrywa to automatycznie i na tej podstawie podejmuje decyzje dotyczące równoważenia obciążenia.
  4. Odrzuca nieprawidłowe żądania.
  5. Brak określonej przeglądarki lub serwerów internetowych.

Przyjrzyjmy się, jak można wykonać ten hack.

Przede wszystkim będziesz potrzebować scenariusza, aby lepiej zrozumieć, jak to zrobić. Zastosuję więc scenariusz, w którym istnieją dwa serwery WWW i jeden serwer bramy, które muszą zrównoważyć żądania docierające do serwera bramy do serwerów WWW.


Pound Gateway Server : 172.16.1.222
Web Server 01 : 172.16.1.204
Web Server 02 : 192.168.1.161

Krok 1: Zainstaluj moduł równoważenia obciążenia Pound na serwerze bramy

1. Najłatwiejszym sposobem zainstalowania Pound jest użycie wstępnie skompilowanych pakietów RPM. Możesz znaleźć RPM dla dystrybucji opartych na RedHat pod adresem:

  1. http://www.invoca.ch/pub/packages/pound/

Alternatywnie Pound można łatwo zainstalować z repozytorium EPEL, jak pokazano poniżej.


yum install epel-release
yum install Pound

Po zainstalowaniu Pound możesz sprawdzić, czy jest zainstalowany, wydając to polecenie.


rpm –qa |grep Pound

2. Po drugie, potrzebujesz dwóch serwerów internetowych, aby zrównoważyć obciążenie i upewnić się, że masz jasne identyfikatory w celu sprawdzenia, czy konfiguracja funta działa prawidłowo.

Tutaj mam dwa serwery z adresami IP 172.16.1.204 i 192.168.1.161.

Dla łatwości użytkowania stworzyłem Pythona SimpleHTTPServer, aby utworzyć natychmiastowy serwer WWW na obu serwerach. Przeczytaj o Pythonie SimpleHTTPServer

W moim scenariuszu mój webserver01 działa na 172.16.1.204 przez port 8888, a webserver02 działa na >192.168.1.161 przez port 5555.

Krok 2: Skonfiguruj moduł równoważenia obciążenia Pound

3. Teraz nadszedł czas na dokonanie konfiguracji. Po pomyślnej instalacji pounda tworzy on plik konfiguracyjny funta w /etc, mianowicie pound.cfg.

Musimy edytować szczegóły serwera i backendu, aby zrównoważyć obciążenie serwerów internetowych. Przejdź do /etc i otwórz plik pound.cfg do edycji.


vi /etc/pound.cfg

Wprowadź zmiany zgodnie z sugestią poniżej.


ListenHTTP
    Address 172.16.1.222
    Port 80
End

ListenHTTPS
    Address 172.16.1.222
    Port    443
    Cert    "/etc/pki/tls/certs/pound.pem"
End

Service
    BackEnd
        Address 172.16.1.204
        Port    8888
    End

    BackEnd
        Address 192.168.1.161
        Port    5555
    End
End

Tak wygląda mój plik pound.cfg.

W tagach „ListenHTTP” i „ListenHTTPS” musisz wpisać adres IP serwera, na którym zainstalowałeś POUND.

Domyślnie serwer obsługuje żądania HTTP przez port 80 i żądania HTTPS przez port 443. Pod tagiem „Usługa” możesz dodać dowolną liczbę tagów podrzędnych o nazwie „BackEnd”. Tagi BackEnd zawierają adresy IP i numery portów, na których działają serwery WWW.

Teraz zapisz plik po jego poprawnej edycji i zrestartuj usługę POUND wydając jedno z poniższych poleceń.


/etc/init.d/pound restart 
OR
service pound restart
OR
systemctl restart pound.service

4. Teraz czas sprawdzić. Otwórz dwie przeglądarki internetowe i sprawdź, czy nasze konfiguracje działają prawidłowo. W pasku adresu wpisz adres IP bramy POUND i zobacz, co się pojawi.

Pierwsze żądanie powinno załadować pierwszy serwer WWW01, a drugie żądanie z drugiej przeglądarki internetowej powinno załadować drugi serwer WWW02.

Co więcej, pomyśl o scenariuszu, w którym masz dwa serwery internetowe do zrównoważenia obciążenia i wydajność jednego z serwerów jest dobra, a wydajność drugiego nie jest zbyt dobra.

Zatem podczas równoważenia obciążenia między nimi będziesz musiał rozważyć, na który serwer będziesz musiał położyć większe obciążenie. Oczywiście dla serwera o dobrych parametrach wydajnościowych.

Aby zrównoważyć obciążenie w ten sposób, wystarczy dodać pojedynczy parametr w pliku pound.cfg. Rzućmy na to okiem.

Uważaj, że serwer 192.168.1.161:5555 jest lepszym serwerem. Następnie musisz skierować więcej żądań do tego serwera. Pod tagiem „BackEnd” skonfigurowanym dla serwera 192.168.1.161 dodaj parametr „Priority” przed tagiem końcowym.

Spójrz na poniższy przykład.

Zakres, jaki możemy zastosować dla parametru „Priorytet” mieści się w przedziale 1-9. Jeśli tego nie zdefiniujemy, zostanie przypisana domyślna wartość 5.

Wtedy obciążenie będzie równomiernie zrównoważone. Jeśli zdefiniujemy numer priorytetu, POUND będzie częściej ładować serwer z wyższym numerem priorytetu. Zatem w tym przypadku 192.168.1.161:5555 będzie ładowany częściej niż serwer 172.16.1.204:8888.

Krok 3: Planowanie awarii awaryjnych

Tag awaryjny: ten tag służy do ładowania serwera w przypadku, gdy wszystkie serwery zaplecza nie działają. Możesz dodać go przed ostatnim tagiem końcowym pound.cfg w następujący sposób.


“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND zawsze śledzi, które serwery zaplecza działają, a które nie. Możemy określić, po ilu sekundach POUND powinien sprawdzać serwery backendu, dodając parametr „Alive” w pliku pound.cfg.

Możesz użyć parametru jako „Żywy 30”, aby ustawić go na 30 sekund. Pound tymczasowo wyłączy serwery zaplecza, które nie odpowiadają. Kiedy mówimy, że serwer nie odpowiada, może być martwy lub nie może w tym momencie nawiązać połączenia.

POUND będzie sprawdzał wyłączony serwer backendowy po każdym czasie zdefiniowanym w pliku pound.cfg, w przypadku gdyby serwer mógł nawiązać połączenie, wówczas POUND może wrócić do pracy z serwerem.

7. Demon POUND będzie obsługiwany przez polecenie poundctl. Dzięki temu nie musimy edytować pliku pound.cfg i możemy uruchamiać serwery i sesje Listner Server, BackEnd itp. za pośrednictwem jedno polecenie.


Syntax: poundctl -c /path/to/socket [-L/-l] [-S/-s] [-B/-b] [-N/-n] [-H] [-X]
  1. -c definiuje ścieżkę do Twojego gniazda.
  2. -L/-l definiuje słuchacza Twojej architektury.
  3. -S/-s definiuje usługę.
  4. -B/-b definiuje serwery zaplecza.

Więcej informacji znajdziesz na stronach podręcznika poundctl.

Mam nadzieję, że spodoba ci się ten hack i odkryjesz więcej opcji na ten temat. Zachęcamy do komentowania poniżej w celu uzyskania wszelkich sugestii i pomysłów. Pozostań w kontakcie z Tecmint, aby uzyskać przydatne i najnowsze instrukcje.

Przeczytaj także: Instalowanie modułu równoważenia obciążenia XR Crossroads dla serwerów internetowych