serwer błędu wewnętrznego wskazuje na działający serwer za pomocą modułu równoważenia obciążenia lub nginx

0

Powiedzmy, że mam 3 fizyczne serwery o różnych adresach IP i 1 moduł równoważenia obciążenia, który zarządza ruchem między tymi 3 serwerami. Testowaliśmy, aby zatrzymać usługę nginx na 2 serwerach, a moduł równoważenia obciążenia wykrył to i nie używał 2 serwerów z zatrzymanym nginx.

Moje pytanie brzmi: na przykład, że 3 serwery są uruchomione i działa, a 1 serwer ma wewnętrzny błąd serwera (dowolny 500 wewnętrzny błąd serwera). Jak możemy uniknąć tego 1 serwera, który napotyka błąd serwera? unikać białej strony?

Rei
źródło

Odpowiedzi:

0

Unikniesz białej strony, definiując odpowiednio sformatowany dokument błędu w error_pagedyrektywie zamiast polegać na domyślnym komunikacie o błędzie :)

   error_page 500 /errors/500.html

Z drugiej strony, jeśli chcesz uniknąć wysyłania dalszych żądań do węzła, który zwraca błędy?

Zazwyczaj jest to coś, co konfigurujesz w module równoważenia obciążenia, tam chcesz usunąć uszkodzony węzeł z puli aktywnych serwerów zaplecza. Szczegóły różnią się w zależności od produktu, ale należy zdefiniować kontrolę poprawności, która robi więcej niż tylko połączenie TCP, aby ustalić, czy serwer zaplecza jest uruchomiony.

Moduł równoważenia obciążenia musi zrobić coś nieco bardziej zaawansowanego, na przykład rzeczywiste żądanie HTTP i ocenić, jak szybko i co jest zwracane, zazwyczaj jeśli kod stanu / odpowiedzi HTTP ma wartość 200 i / lub treść odpowiedzi ma określoną treść lub spełnia określony minimalny rozmiar .

HBruijn
źródło
Więc jest opcja w module równoważenia obciążenia, aby ten proces sprawdzał najpierw kod odpowiedzi przed faktycznym użyciem tego serwera?
Rei
@Rei Większość loadbalancerów ma mechanizm odpytywania, aby ustalić, czy serwer zaplecza jest żywy i zdrowy, tak. W wielu domyślnych kontrolach są podstawowe, głównie w stylu „czy usługa nasłuchuje i czy można nawiązać połączenie TCP?” ale można również skonfigurować bardziej zaawansowane kontrole. Przeczytaj instrukcję obsługi modułu równoważenia obciążenia, aby zobaczyć, co jest obsługiwane i możliwe.
HBruijn
@HBruijin dzięki, spróbujemy tego. Wrócę do ciebie, kiedy to przetestujemy. A tak przy okazji, czy istnieje sposób na stworzenie lokalnego modułu równoważenia obciążenia?
Rei