Zainstaluj i skonfiguruj Haproxy na RHEL 8 / Centos 8 Linux

Zainstaluj i skonfiguruj Haproxy na RHEL 8 / Centos 8 Linux

Proxy Haproxy lub wysokiej dostępności to open source TCP i HTTP Ralancer i oprogramowanie serwera proxy. Haproxy został napisany przez Willy Tarreau w C, obsługuje SSL, Compressions, Keep-Alive, niestandardowe formaty dzienników i przepisywanie nagłówków. Haproxy to szybki i lekki serwer proxy i równoważenie obciążenia z małym śladem pamięci i niskim użyciem procesora. Jest używany przez duże strony, takie jak Github, Stackoverflow, Reddit, Tumblr, Twitter i inne. W ostatnich latach stał.

W tym samouczku przejdziesz przez instalację i konfigurację Haproxy na RHEL 8 / Centos 8. Zainstalujemy Haproxy na jednym serwerze, a następnie zainstalujemy serwer WWW Nginx na innych serwerach. Haproxy będzie działał jako moduł równoważenia obciążenia dla serwerów WWW Nginx.

W tym samouczku nauczysz się:

  • Architektura i koncepcje haproxy
  • Skonfiguruj plik hostów do rozdzielczości nazw
  • Zainstaluj i skonfiguruj Haproxy
  • Zainstaluj i skonfiguruj Nginx
  • Testowanie funkcji równoważenia obciążenia
  • Uzyskaj dostęp do URL statystyk Haproxy

Architektura Haproxy.

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System RHEL 8 / CENTOS 8
Oprogramowanie Haproxy, Nginx
Inny Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Architektura i koncepcje haproxy

Haproxy może działać w dwóch trybach: Tryb TCP Warstwa 4 i Tryb HTTP Warstwa 7. W trybie TCP warstwy 4 haproxy przesyła surowe pakiety TCP z klienta do serwerów aplikacji. W trybie HTTP warstwy 7 haproxy analizuje nagłówek HTTP przed przekazaniem go do serwerów aplikacji. W tym samouczku użyjemy Nginx jako serwera WWW, który obsługuje tryb warstwy 7 HTTP.

Balansowanie obciążenia warstwy 4. Balansowanie obciążenia warstwy 7.



Algorytm równowagi to algorytm używany przez haproxy do wyboru serwera podczas równoważenia obciążenia. Dostępne są następujące tryby:

Roundrobin

To najprostszy algorytm równowagi. Dla każdego nowego połączenia będzie on obsługiwany przez następny serwer backend. Jeśli ostatni serwer backend na liście zostanie osiągnięty, zacznie się od nowa od góry listy backend.

PrzynajmniejConn

Nowe połączenie będzie obsługiwane przez serwer zaplecza z najmniejszą ilością połączeń. Jest to przydatne, gdy czas i obciążenie żądań bardzo się różnią.

Źródło

To dotyczy lepkich sesji, IP klienta zostanie skazany na określenie serwera zaplecza, który otrzymał ostatnie żądanie z tego adresu IP. Zatem IP A zawsze będzie obsługiwany przez Backend1, a Banckend2 zawsze będzie obsługiwany przez Banckend2, aby nie przerwać sesji.

Skonfiguruj plik hostów do rozdzielczości nazw

Zaloguj się na serwerze Balancer i edytuj /etc/hosts Plik i haproxy LoadBalancer, Nginx1, Nginx2 nazwy hostów. Skopiuj ten sam plik na pozostałych dwóch węzłach Nginx i sprawdź łączność sieciową za pośrednictwem Ping Comand.

# vim /etc /hosts
 192.168.1.108 LOALBALANCER.przykład.com 192.168.1.104 Nginx1.przykład.com 192.168.1.105 nginx2.przykład.com 
Kopiuj

Zainstaluj i skonfiguruj Haproxy

Haproxy jest dostępny w repozytorium RHEL 8 / Centos 8, stąd zaloguj się na serwerze LoadBalancer i zainstaluj pakiet Haproxy za pomocą tego polecenia Yum.

# mniam instalacja haproxy

Po pomyślnym zainstalowaniu możesz użyć poniższego polecenia, aby zweryfikować instalację.

# Yum Info Haproxy
# Yum Info Haproxy Aktualizacja repozytoriów zarządzania subskrypcją. Aktualizacja repozytoriów zarządzania subskrypcją. Ostatnie metadane kontrola wygaśnięcia: 0:06:03 temu w sobotę 16 marca 2019 11:40:24 PM +04. Zainstalowane paczki Nazwa: Haproxy Wersja: 1.8.14 Wydanie: 1.EL8 Arch: x86_64 Rozmiar: 4.Źródło 1 m: Haproxy-1.8.14-1.El8.src.RPM Repo: @System z Repo: RHEL-8-FOR-X86_64-APPSPSTREAM-BETA-RPMS Podsumowanie: Haproxy Reverse Proxy dla środowisk wysokiej dostępności URL: http: // www.Haproxy.ORG/ Licencja: GPLV2+ Opis: Haproxy to odwrotny serwer proxy TCP/ HTTP, który jest szczególnie odpowiedni dla środowisk wysokiej:. Rzeczywiście, może: do specjalnych portów poświęconych monitorowaniu usług: - Przestań przyjmować połączenia bez łamania istniejących: - Dodaj, modyfikuj i usuń nagłówki HTTP w obu kierunkach: - żądania bloków Dopasowywanie poszczególnych wzorców: - Zgłoś szczegółowy status uwierzytelnionych użytkowników z URI: przechwycony z URI: przechwycony z URI Aplikacja 

Po zakończeniu instalacji przejdź do /etc/haproxy/ katalog i kopia zapasowa oryginalnego pliku konfiguracyjnego.



# cd/etc/haproxy/ # cp Haproxy.CFG Haproxy.CFG.Orig 

Następnie wykonaj poniższe zmiany w pliku konfiguracyjnym Haproxy Haproxy.CFG z dowolnym redaktorem.

#------------------------------------------------- -------------------- # Przykładowa konfiguracja dla możliwej aplikacji internetowej. Zobacz # pełne opcje konfiguracji online. # # https: // www.Haproxy.org/pobierz/1.8/Doc/Configuration.tekst # #----------------------------------------------- ---------------------- --------------------------- ------------------------------------------ # Ustawienia ogólne #---- -------------------------------------------------- --------------- Global #, aby te wiadomości skończyły w/var/log/haproxy.Dziennik będziesz # musisz: # # 1) Skonfiguruj syslog, aby akceptować zdarzenia dziennika sieciowego. Odbywa się to #, dodając opcję „-r” do syslogd_options w #/etc/sysconfig/syslog # # 2) Skonfiguruj zdarzenia lokalne2, aby przejść do/var/log/haproxy.plik dziennika. Linia taka jak następujące można dodać do #/etc/sysconfig/syslog # # Local2.*/var/log/haproxy.log # log 127.0.0.1 Local2 chroot/var/lib/haproxy pidfile/var/run/haproxy.PID Maxconn 4000 użytkownika Haproxy grupa haproxy Demon # Włącz statystyki UNIX GNEKT SNETS SNE/VAR/Lib/Haproxy/Stats # Użyj systemu Crypto-Polityies SSL-Default-Bind-Ciphers Profil = System SSL-Default-Server-Ciphers Profil = System #----------------------------------------------- ---------------------- # Wspólne wartości domyślne, że wszystkie sekcje „Słuchaj” i „Backend” będą # używać, jeśli nie zostały wyznaczone w swoim bloku # ---- -------------------------------------------------- -------------.0.0.0/8 Opcja Redispatch Próba 3 Limit czasu HTTP-Odporność 10s Timeout Kolejka 1M Limit czasu Podłącz 10S Limit czasu klient -------------------------------------------------- ------ # Haproxy Monitoring Config # --------------------------------------- -------------------------- Słuchaj statystyk wiążących ładowanie loadbalancer.przykład.COM: 8080 # HAPROXY MONITOROWANIE W PIT TRYB 8080 TRYB HTTP Opcja Forward For Option HTTPClose Włącz statystyki Pokazuj statystyki Statystyki Odśwież 5S Statysty do monitorowania pulpitu nawigacyjnego #Stats admin, jeśli true default_backend loadBalancer #Jest to opcjonalnie do monitorowania backend #------------------------------- ---------------------------------- # Główna frontend, który zaskarża backends # --- -------------------------------------------------- ---------------- Frontend Loadbalancer Bint LOADBALANCER.przykład.com: 80 #ACL url_static ścieżka_beg -i /static /images /javascript /stylSheets #acl url_static ścieżka -i -i .jpg .Gif .png .CSS .JS #USE_BACKEND STATIC IF URL_STATIC Opcja HTTP-SERVER CLOPSE Opcja Forward for default_backend loadBalancer #--------------------------------- ------------------------------------ # Static Backend do serwowania obrazów, arkuszy stylów i takich #- -------------------------------------------------- ------------------ #Backend Static # Balance RoundRobin # serwer Static 127.0.0.1: 4331 Sprawdź #--------------------------------------------- ------------------------ # okrągły Robin Bilans między różnymi backendami # ----------------- -------------------------------------------------- - bilans bilansowy bilansowy obrońca # algorytm bilansu opcja httpchk głowica / http / 1.1 \ r \ nhost: \ localHost # Sprawdź aplikację serwerową jest uprawiana i wyczerpująca - 200 serwer kodu stanu nginx1.przykład.com 192.168.1.104: 80 Sprawdź # Nginx Server1 Server Nginx2.przykład.com 192.168.1.105: 80 Sprawdź # Ngnix Server2 

Zapisz ten plik konfiguracyjny i wyjdź.

Teraz skonfigurujemy demon rsyslog, aby zarejestrować statystyki haproxy. Edytuj Rsyslog.conf plik, który włączy port 514 UDP, aby być używany przez RSYSLOG. Otwórz plik konfiguracyjny RSYSLOG i pocukaj linie, aby włączyć połączenie UDP.

# vim /etc /rsyslog.conf
moduł (load = "iMudp") # musi być wykonany tylko raz wprowadzony (type = "iMudp" port = "514") 

Zapisz plik z powyższymi zmianami i wyjdź. Następnie utwórz nowy plik konfiguracyjny Haproxy dla RSYSLOG i dodaj poniższe wpisy w tym pliku.

# cd /etc /rsyslog.D/ # vi Haproxy.conf 
Local2.= info/var/log/haproxy-access.Zaloguj się # dla dziennika dostępu Local2.zawiadomienie/var/log/haproxy-info.Log # Informacje o usłudze - Backend, LoadBalancer 

Teraz uruchom ponownie RSYSLOG, a następnie uruchom usługę Haproxy i dodaj haproxy, aby zacząć w czasie rozruchu.

# Systemctl restart rsyslog # Systemctl start haproxy # Systemctl Włącz haproxy 

Zainstaluj i skonfiguruj Nginx

Nginx jest już częścią istniejącego repozytorium RHEL 8 / Centos 8 i może być zainstalowane za pomocą następującego polecenia.

# mniam instaluj nginx

Po zainstalowaniu możesz zweryfikować instalację za pomocą tego polecenia.

# Yum Info nginx


# Yum Info Nginx aktualizacja repozytoriów zarządzania subskrypcją. Aktualizacja repozytoriów zarządzania subskrypcją. Ostatnie metadane kontrola wygaśnięcia: 0:06:14 temu w sobotę 16 marca 2019 11:40:24 PM +04. Zainstalowane pakiety Nazwa: Nginx Epok: 1 Wersja: 1.14.0 Wydanie: 3.EL8+1631+BA902CF0 Arch: x86_64 Rozmiar: 568 K Źródło: Nginx-1.14.0-3.EL8+1631+BA902CF0.src.RPM Repo: RHEL-8-FOR-X86_64-APPSPSTREAM-beta-RPMS Podsumowanie: Wysoka wydajność serwer WWW i odwrotny serwer serwer proxy: http: // nginx.ORG/ Licencja: BSD Opis: Nginx to serwer WWW i odwrotny serwer proxy dla protokołów HTTP, SMTP, POP3 i: IMAP, z silnym naciskiem na wysoką współbieżność, wydajność i niskie:. 

Po zainstalowaniu Nginx przejdź do katalogu internetowego i zmień indeks.html odpowiednio plik. Upewnij się, że robisz poniżej kroki na serwerze Nginx1 i Nginx2.

# cd/usr/share/nginx/html # ls-lrth łącznie 20K -RW-R-R--. 1 root root 2.8k 31 października 2016 PowerEdby.png -Rw-r-r--. 1 root root 368 31 października 2016 nginx-logo.png -Rw-r-r--. 1 root root 3.7k marca 16 20:39 50x.HTML -RW-R-R--. 1 root root 3.6k marca 16 20:39 404.HTML -RW-R-R--. 1 root root 3.7k marca 16 20:42 Indeks.html 

Następnie dodaj Nginx, aby rozpocząć w czasie rozruchu, a następnie rozpocznij demon z poniższymi poleceniami.

# Systemctl Włącz Nginx # Systemctl Start Nginx 

Testowanie funkcji równoważenia obciążenia

Testy można przeprowadzić poprzez Bied i uzyskiwać dostęp do IP LOADBALANCER IP 192.168.1.108 (w moim przypadku) i zobaczysz, że raz trafia na Node1 Nginx, a po raz drugi trafia do node2 node2 w okrągłym modzie Robin.

Strona internetowa na node1 Nginx. Strona internetowa na node2 Nginx.

Możesz także sprawdzić /var/log/haproxy-access.dziennik Aby uzyskać szczegółowe informacje na temat równoważenia obciążenia.

Uzyskaj dostęp do URL statystyk Haproxy

Uzyskaj dostęp do deski rozdzielczej raportu statystycznego Haproxy, który działa na porcie 8080 z zdefiniowaną nazwą użytkownika i hasłem Haproxy.CFG plik.



http: // 192.168.1.108: 8080/Stats
URL URL statystyk Haproxy. Haproxy Stats pulpit nawigacyjny.

Haproxy pracuje z powodzeniem i działa jako moduł równoważenia obciążenia dla dwóch serwerów Web Nginx.

Wniosek

Haproxy lub proxy o wysokiej dostępności to oprogramowanie typu open source, które zapewnia wysoką dostępność usług opartych na TCP, działa jako równoważenie obciążenia HTTP i serwer proxy. Oprogramowanie jest napisane w C i obsługuje SSL, utrzymywanie i kompresję. Haproxy jest właściwym wyborem dla każdego, kto potrzebuje modułu równoważenia obciążenia i serwera proxy, który jest szybki i lekki z małym śladem pamięci i niskim zużyciem procesora. Haproxy może działać w trybie TCP warstwy 4 i trybu HTTP warstwy 7. Nginx obsługuje tylko tryb http warstwy 7 z haproxy. Jeśli chcesz użyć trybu TCP warstwy 4, możesz użyć innych serwerów Web, takich jak Apache. W RHEL 8 / Centos 8 Linux haproxy jest dostępny w domyślnym repozytorium. Łatwo jest zainstalować i skonfigurować.

Powiązane samouczki Linux:

  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Mastering Bash Script Loops
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Porównanie Linux Apache Prefork vs Pracowni
  • Ubuntu 20.04 WordPress z instalacją Apache
  • Ubuntu 20.04: WordPress z instalacją Nginx
  • Pobierz Linux
  • Utwórz przekieruj i przepisuj reguły do .Htaccess na Apache…
  • Jak często musisz ponownie uruchomić serwer Linux?