Jak używać Nginx jako balansu obciążenia HTTP w Linux

Jak używać Nginx jako balansu obciążenia HTTP w Linux

Jeśli chodzi o konfigurowanie wielu serwerów aplikacji pod kątem redundancji, równoważenie obciążenia jest powszechnie używanym mechanizmem wydajnego dystrybucji żądań usług lub ruchu sieciowego w grupie serwerów zaplecza.

Równoważenie obciążenia ma kilka zalet, w tym zwiększoną dostępność aplikacji poprzez redundancję, zwiększoną niezawodność i skalowalność (więcej serwerów można dodać w miksie, gdy wzrasta ruch). Zapewnia także lepszą wydajność aplikacji i wiele innych korzyści.

Zalecane odczyt: Najlepszy przewodnik po zabezpieczeniu, stwardnienia i poprawie wydajności serwera WWW Nginx

Nginx można wdrożyć jako wydajny HTTP Ralancer w celu rozpowszechniania przychodzącego ruchu sieciowego i obciążenia pracą między grupą serwerów aplikacji, w każdym przypadku zwracając odpowiedź z wybranego serwera na odpowiedniego klienta.

Metody równoważenia obciążenia obsługiwane przez Nginx Czy:

  • Round-Robin - który rozpowszechnia żądania serwerów aplikacji w sposób okrągły. Jest używany domyślnie, gdy nie jest określona żadna metoda,
  • najmniej połączone - przypisuje następne żądanie do mniej zajętego serwera (serwer z najmniejszą liczbą aktywnych połączeń),
  • IP-hash - gdzie funkcja skrótu jest używana do ustalenia, jaki serwer powinien być wybrany dla następnego żądania na podstawie adresu IP klienta. Ta metoda pozwala na trwałość sesji (powiązać klienta z określonym serwerem aplikacji).

Poza tym możesz użyć wagi serwera, aby wpływać Nginx Algorytmy równoważenia obciążenia na bardziej zaawansowanym poziomie. Nginx Obsługuje również kontrole zdrowia oznaczające serwer jako nieudany (dla konfigurowalnego czasu, domyślnie jest 10 sekundy) Jeśli jego odpowiedź nie powiedzie się z błędem, uniknie tego serwera dla kolejnych żądań przychodzących przez pewien czas.

Ten praktyczny przewodnik pokazuje, jak używać Nginx Jako HTTP Ralancer w celu rozpowszechniania przychodzących żądań klienta między dwoma serwerami, które mają instancję tej samej aplikacji.

Do celów testowych każda instancja aplikacji jest oznaczone (na interfejsie użytkownika), aby wskazać serwer, na którym działa.

Konfiguracja środowiska testowego

Balancer obciążenia: 192.168.58.7 Serwer aplikacji 1: 192.168.58.5 Serwer aplikacji 2: 192.168.58.8 

Na każdym serwerze aplikacji każda instancja aplikacji jest skonfigurowana do dostępu za pomocą domeny TecMintapp.Lan. Zakładając, że jest to domena w pełni zarejestrowana, dodalibyśmy następujące w ustawieniach DNS.

Rekord @ 192.168.58.7 

Niniejszy rekord informuje o żądaniu klienta, gdzie domena powinna kierować, w tym przypadku, w tym przypadku Balancer obciążenia (192.168.58.7). DNS A Rekordy akceptują tylko wartości IPv4. Alternatywnie /etc/hosts Plik na maszynach klienta może być również używany do celów testowych, z następującym wpisem.

192.168.58.7 TecMintapp.Lan 

Konfigurowanie równoważenia obciążenia Nginx w Linux

Przed skonfigurowaniem równoważenia obciążenia Nginx musisz zainstalować Nginx na serwerze za pomocą domyślnego menedżera pakietów dla dystrybucji, jak pokazano.

$ sudo apt instal nginx [on Debian/Ubuntu] $ sudo yum instaluj nginx [na Centos/Rhel] 

Następnie utwórz nazywany plik blokowy serwera /etc/nginx/conf.D/LoadBalancer.conf (Podaj wybraną nazwę).

$ sudo vi/etc/nginx/conf.D/LoadBalancer.conf 

Następnie skopiuj i wklej następującą konfigurację. Ta konfiguracja jest domyślna do Round-Robin, ponieważ nie jest zdefiniowana metoda równoważenia obciążenia.

 Backend Upstream Server 192.168.58.5; serwer 192.168.58.8;  serwer Słuchaj 80 default_server; Posłuchaj [::]: 80 default_server; Server_name TecMIntApp.Lan; lokalizacja / proxy_redirect off; proxy_set_header x-real-ip $ remote_addr; proxy_set_header x-forwarded-for $ proxy_add_x_forwarded_for; proxy_set_header host $ http_host; proxy_pass http: // backend;  

W powyższej konfiguracji, proxy_pass dyrektywa (którą należy określić w lokalizacji, / W takim przypadku) służy do przekazania żądania na serwerach serwerów HTTP, do których odwołuje się za pomocą backend Dyrektywa w górę (używane do zdefiniowania grupy serwerów). Również żądania będą rozmieszczone między serwerami za pomocą mechanizmu równoważenia obciążonego okrągłego-robiny.

Aby zastosować mechanizm najmniejszego połączenia, użyj następującej konfiguracji

Backend Upstream najmniej_conn; serwer 192.168.58.5; serwer 192.168.58.8;  

I włączyć ip_hash Mechanizm trwałości sesji, użyj:

Backend uptream ip_hash; serwer 192.168.58.5; serwer 192.168.58.8;  

Możesz także wpłynąć na decyzję o równowadze obciążenia za pomocą serwera ciężary. Korzystając z następującej konfiguracji, jeśli jest sześć żądań od klientów, serwer aplikacji 192.168.58.5 zostanie przypisane 4 żądania i 2 192.168.58.8.

Backend Upstream Server 192.168.58.5 waga = 4; serwer 192.168.58.8;  

Zapisz plik i wyjdź z niego. Następnie upewnij się, że struktura konfiguracji Nginx jest poprawna po dodaniu ostatnich zmian, uruchamiając następujące polecenie.

$ sudo nginx -t 

Jeśli konfiguracja jest OK, uruchom ponownie i włącz usługę Nginx zastosowanie zmian.

$ sudo systemctl restartuj nginx $ sudo systemctl enable nginx 

Testowanie bilansowania obciążenia nginx w Linuksie

Aby przetestować Nginx Ładuj równoważenie, otwórz przeglądarkę internetową i użyj następującego adresu do nawigacji.

http: // tecMIntapp.Lan 

Po załadowaniu interfejsu witryny zwróć uwagę na załadowaną instancję aplikacji. Następnie stale odśwież stronę. W pewnym momencie aplikacja powinna być załadowana z drugiego serwera wskazującego równoważenie obciążenia.

Sprawdź równoważenie obciążenia Nginx w Linuksie

Właśnie nauczyłeś się skonfigurować Nginx Jako równoważenie obciążenia HTTP w Linux. Chcielibyśmy poznać twoje przemyślenia na temat tego przewodnika, a zwłaszcza na temat zatrudniania Nginx jako balansu obciążenia, za pośrednictwem poniższego formularza sprzężenia zwrotnego. Aby uzyskać więcej informacji, zobacz dokumentację NGINX na temat używania Nginx jako równoważenia obciążenia HTTP.