Jak naprawić błąd 502 Bad Gateway NGINX? (7 metod)

Opublikowany: 2023-04-20

Nginx to dobrze znany serwer WWW typu open source, który jest bardzo popularny ze względu na swoją wydajność, skalowalność i elastyczność. Jednak podobnie jak inne serwery WWW, Nginx może napotkać błędy, które utrudniają dostarczanie treści klientom. Jednym z takich błędów jest błąd 502 Bad Gateway Nginx.

Napotykanie błędów może być dość frustrujące i mylące, zwłaszcza jeśli nie jesteś biegły technicznie. Możesz natknąć się na kilka podobnych znaczących błędów, takich jak biały ekran śmierci i błąd ustanawiania połączenia z bazą danych. Ale błąd 502 złej bramy nginx jest bardzo popularny.

Może istnieć wiele możliwych przyczyn wystąpienia tego błędu, a zatem różne sposoby jego rozwiązania. W tym poście dowiesz się, co naprawdę oznacza 502 zła brama Nginx, jakie są możliwe przyczyny i jakie są najlepsze metody rozwiązywania problemów, których należy przestrzegać.

Zacznijmy!


Spis treści
Co to jest błąd 502 Bad Gateway Nginx?
Co powoduje błąd 502 Bad Gateway Nginx?
Jak naprawić błąd 502 Bad Gateway Nginx?
Streszczenie
Często Zadawane Pytania

Przeczytaj: 15 metod naprawy błędu 502 Bad Gateway w Twojej witrynie


Co to jest błąd 502 Bad Gateway Nginx?

Błąd 502 Bad Gateway Nginx to kod stanu HTTP, który reprezentuje serwer działający jako brama lub serwer proxy, który nie otrzymał prawidłowej odpowiedzi z serwera nadrzędnego. W przypadku Nginx błąd złej bramy 502 występuje, gdy serwer nie może nawiązać połączenia z serwerem nadrzędnym lub gdy serwer nadrzędny zwraca nieprawidłową odpowiedź.

Ten błąd jest często spotykany podczas próby uzyskania dostępu do witryny internetowej lub aplikacji internetowej hostowanej za odwrotnym serwerem proxy lub systemem równoważenia obciążenia.

Istnieje wiele odmian błędu 502 Bad gateway Nginx, które można znaleźć na różnych stronach. Na przykład:

  • Błąd HTTP 502 — zła brama
  • 502 Błąd serwera proxy
  • 502 Zła bramka
  • 502 Usługa tymczasowo przeciążona
  • HTTP502
  • 502 Zła bramka NGINX
  • Błąd 502

Co powoduje błąd 502 Bad Gateway Nginx?

Może być kilka powodów, dla których błąd 502 Bad Gateway może wystąpić w Nginx, ale oto niektóre z najczęstszych wymienionych poniżej:

Przeciążenie serwera

Gdy serwer zaplecza otrzymuje zbyt wiele żądań, może zostać przeciążony i nie odpowiadać w określonym limicie czasu. Powoduje to błąd 502, ponieważ serwer nadrzędny nie może spełnić żądania klienta. Właściwe strategie doboru rozmiaru serwera, alokacji zasobów, równoważenia obciążenia i skalowania mogą zapobiec przeciążeniu serwera.

Problemy z łącznością

  • Problemy z łącznością mogą powodować błąd 502 Bad Gateway w Nginx, gdy występuje problem z połączeniem sieciowym między odwrotnym serwerem proxy a serwerem zaplecza.
  • Może się to zdarzyć z powodu przeciążenia sieci, źle skonfigurowanych ustawień sieciowych lub awarii sprzętu.
  • Gdy odwrotny serwer proxy próbuje przekazać żądanie do serwera zaplecza, ale nie może nawiązać połączenia, zwraca błąd 502 do klienta.
  • Błąd występuje, ponieważ odwrotny serwer proxy działa jako pośrednik między klientem a serwerem zaplecza i nie może połączyć się z serwerem zaplecza, aby spełnić żądanie klienta.
  • Rozwiązywanie problemów z ustawieniami sieciowymi, sprawdzanie reguł zapory sieciowej i monitorowanie ruchu sieciowego może pomóc w rozwiązaniu problemu.

Problemy z DNSami

  • Problemy z DNS mogą powodować błąd 502 Bad Gateway w Nginx, gdy rozpoznawanie DNS dla serwera zaplecza nie powiedzie się.
  • Może się to zdarzyć z powodu nieprawidłowych konfiguracji DNS, awarii serwera DNS lub problemów z buforowaniem DNS.
  • Gdy klient wysyła żądanie do odwrotnego serwera proxy, odwrotny serwer proxy musi przetłumaczyć nazwę domeny serwera zaplecza na adres IP.
  • Jeśli rozpoznawanie DNS nie powiedzie się, odwrotny serwer proxy nie może przekazać żądania do serwera zaplecza, co powoduje zwrócenie błędu 502 do klienta.

Przeczytaj: Co to jest DNS?


Ograniczenia zapory sieciowej

  • Ograniczenia zapory mogą powodować błąd 502 Bad Gateway w Nginx, gdy zapora blokuje połączenie między odwrotnym serwerem proxy a serwerem zaplecza.
  • Może się tak zdarzyć, gdy zapora jest skonfigurowana tak, aby ograniczać ruch do iz określonych adresów IP lub portów.
  • Gdy odwrotny serwer proxy próbuje połączyć się z serwerem zaplecza, ale zapora blokuje połączenie, zwraca błąd 502 do klienta.
  • Dzieje się tak, ponieważ odwrotny serwer proxy działa jako pośrednik między klientem a serwerem zaplecza i nie może nawiązać połączenia z serwerem zaplecza w celu spełnienia żądania klienta.
  • Aby rozwiązać problemy związane z zaporą ogniową powodujące błąd 502, może być konieczne dostosowanie reguł zapory sieciowej, aby umożliwić przepływ ruchu między zwrotnym serwerem proxy a serwerami zaplecza.

Błędy oprogramowania

  • Błąd 502 Bad Gateway może wystąpić z powodu błędu oprogramowania lub błędnej konfiguracji odwrotnego serwera proxy lub serwera zaplecza.
  • Ten błąd może wystąpić z powodu błędów kodowania lub błędnej konfiguracji modułów serwera lub aplikacji.
  • Jeśli oprogramowanie lub konfiguracja któregoś z serwerów zawiera błąd, może on nie obsłużyć żądań lub odpowiedzieć w określonym czasie, co spowoduje zwrócenie błędu 502 do klienta.
  • Aby naprawić problemy związane z oprogramowaniem powodujące błąd 502, może być konieczne sprawdzenie dzienników zwrotnego serwera proxy i serwerów zaplecza w celu zidentyfikowania błędów lub komunikatów ostrzegawczych.

Odpowiedź PHP-FMP trwa zbyt długo

  • PHP-FPM (FastCGI Process Manager) może powodować błąd 502 Bad Gateway w Nginx, gdy nie odpowiada w określonym czasie lub napotka błąd krytyczny.
  • Ten błąd może wystąpić z powodu niewystarczających zasobów, błędnej konfiguracji lub błędu w kodzie PHP.
  • PHP-FPM to popularny sposób uruchamiania aplikacji PHP w Nginx, gdzie Nginx wysyła żądanie do PHP-FPM i przetwarza kod PHP i zwraca wynik do Nginx, który następnie odsyła odpowiedź do klienta.
  • Aby rozwiązać problemy związane z PHP-FPM, może być konieczne dostosowanie konfiguracji PHP-FPM w celu zwiększenia liczby procesów lub wątków lub dostosowania ustawień limitu czasu.
  • Może być również konieczne zbadanie kodu PHP w celu zidentyfikowania i naprawienia wszelkich błędów lub problemów z wydajnością.
  • Ponadto monitorowanie dzienników serwera i zasobów systemowych może pomóc zidentyfikować wzorce lub trendy, które mogą wskazywać na większy problem z PHP-FPM.

Przeczytaj: Jak naprawić błąd przekroczenia limitu czasu bramy HTTP 504?


Jak naprawić błąd 502 Bad Gateway Nginx?

Oto kilka najlepszych rozwiązań, które możesz zastosować, aby naprawić błąd 502 Bad Gateway Nginx:

  • Sprawdź stan Nginx
  • Sprawdź stan serwera zaplecza
  • Sprawdź konfigurację DNS
  • Sprawdź konfigurację zapory
  • Zwiększ rozmiar bufora
  • Uruchom ponownie serwer Nginx
  • Sprawdź status PHP-FPM

Sprawdź stan Nginx

Pierwszą rzeczą, którą musisz zrobić, to sprawdzić, czy Nginx działa i odpowiada na żądania, czy nie. Aby to zrobić, uruchom następujące polecenie podane poniżej:

Jeśli Nginx jest uruchomiony, otrzymasz komunikat wyjściowy podobny do tego:

nginx.service - The nginx HTTP Server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-10-11 10:25:41 UTC; 1 days ago
Docs: https://httpd.nginx.org/docs/2.4/

Jeśli Nginx nie działa, otrzymasz komunikat wyjściowy podobny do tego:

nginx.service - The nginx HTTP Server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2022-10-11 10:25:41 UTC; 25s ago
Docs: https://httpd.nginx.org/docs/2.4/

Teraz, jeśli Nginx nie działa, musisz uruchomić go ponownie, używając następującego polecenia,

systemctl start nginx

Sprawdź stan serwera zaplecza

  • Zaloguj się do odwrotnego serwera proxy, który obsługuje Nginx.
  • Otwórz okno terminala i uruchom następujące polecenie:

curl -I http://backend-server-ip-address/

• Zastąp „backend-server-ip-address” adresem IP swojego serwera backendowego.

• Sprawdź kod stanu HTTP w danych wyjściowych polecenia. Jeśli serwer zaplecza działa poprawnie, powinien zostać wyświetlony kod stanu 200 OK.

• Jeśli otrzymasz kod stanu inny niż 200, oznacza to, że może występować problem z serwerem zaplecza. Możesz dokładniej zbadać problem, sprawdzając dzienniki serwera zaplecza, aby zidentyfikować wszelkie błędy lub komunikaty ostrzegawcze.

Sprawdź konfigurację DNS

Jeśli rozpoznawanie DNS nie powiedzie się, odwrotny serwer proxy nie może przekazać żądania do serwera zaplecza, co powoduje zwrócenie błędu 502 Bad Gateway do klienta. Dlatego ważne jest, aby sprawdzić, czy konfiguracja DNS dla serwera zaplecza jest poprawna.

Aby sprawdzić konfigurację DNS, możesz wykonać następujące czynności:

  • Zaloguj się do odwrotnego serwera proxy, który obsługuje Nginx.
  • Otwórz okno terminala i uruchom następujące polecenie:

nslookup backend-server-domain-name

Zastąp „nazwa-domeny-serwera zaplecza” nazwą domeny serwera zaplecza.

• Sprawdź dane wyjściowe polecenia, aby upewnić się, że zwracany jest poprawny adres IP dla serwera zaplecza.

  • Jeśli dane wyjściowe polecenia wskazują, że rozpoznawanie nazw DNS nie powiodło się, może to oznaczać problem z konfiguracją DNS. Możesz dokładniej zbadać ten problem, sprawdzając ustawienia DNS dla nazwy domeny serwera zaplecza lub kontaktując się z dostawcą DNS w celu uzyskania pomocy.

Sprawdź konfigurację zapory

Zaleca się sprawdzenie dzienników zapory pod kątem nietypowej blokady. Czasami zapory ogniowe również uniemożliwiają lub blokują witryny. Aby rozwiązać ten problem, musisz tymczasowo wyłączyć zapory i sprawdzić, czy problem nadal występuje, czy został rozwiązany.

Zwiększ rozmiar bufora

Zwiększenie rozmiaru bufora pozwala Nginx przechowywać więcej danych z odpowiedzi serwera, zapewniając, że odpowiedź jest kompletna i wolna od błędów. Aby zwiększyć rozmiar bufora, musisz edytować plik konfiguracyjny Nginx i dodać następujące dyrektywy.

  • proxy_buffer_size : Ustawia rozmiar każdego bufora. Wartość domyślna to zazwyczaj 4K. Możesz zwiększyć go do wyższej wartości w zależności od wymagań twojego serwera. Na przykład, aby ustawić rozmiar bufora na 16 KB, dodaj następujący wiersz do pliku konfiguracyjnego:

proxy_buffer_size 16k;

  • proxy_buffers : Ustawia liczbę buforów do przydzielenia. Domyślna wartość to zwykle 8. Możesz ją zwiększyć do wyższej wartości w zależności od wymagań serwera. Na przykład, aby ustawić liczbę buforów na 32 i rozmiar bufora na 16 KB, dodaj następujący wiersz do pliku konfiguracyjnego:

proxy_buffers 32 16k;


Uwaga: należy pamiętać, że zwiększenie rozmiaru bufora i liczby buforów spowoduje zwiększenie wykorzystania pamięci na serwerze. Dlatego powinieneś poeksperymentować z różnymi rozmiarami i numerami buforów, aby znaleźć optymalne ustawienie dla swojego serwera i aplikacji.


  • Po wprowadzeniu zmian w pliku konfiguracyjnym Nginx zapisz plik i uruchom ponownie Nginx, aby zmiany zaczęły obowiązywać. Możesz to zrobić, uruchamiając następujące polecenie:

sudo service nginx restart

Uruchom ponownie serwer Nginx

W niektórych przypadkach samo ponowne uruchomienie serwera Nginx może rozwiązać błąd 502 złej bramy Nginx. Aby to zrobić,

Musisz uruchomić polecenie w swoim terminalu lub powłoce. Dokładne polecenie zależy od używanego systemu operacyjnego i dystrybucji, ale oto kilka przykładów:

  • Ubuntu i Debian:

sudo service nginx restart

  • CentOS, Fedora i RHEL:

sudo systemctl restart nginx

  • macOS :

sudo nginx -s reload

Te polecenia z wdziękiem zrestartują serwer Nginx, co oznacza, że ​​będzie on czekał na zakończenie wszystkich aktywnych połączeń przed zamknięciem i ponownym uruchomieniem.

Sprawdź status PHP-FPM

Czasami błąd 502 Bad Gateway Nginx może być również wywołany przez niedziałający PHP-FPM. Dlatego konieczne jest sprawdzenie statusu PHP-FPM, aby upewnić się, że działa poprawnie.

Aby sprawdzić status działania, możesz użyć następującego polecenia:

sudo service php-fpm status

Jeśli PHP-FPM jest uruchomiony, powinieneś zobaczyć komunikat informujący, że jest aktywny.

Jednak w przypadku, gdy PHP-FPM nie jest uruchomiony, możesz spróbować uruchomić go ponownie za pomocą następującego polecenia:

sudo service php-fpm restart

To polecenie zrestartuje usługę PHP-FPM, co może pomóc rozwiązać każdy problem, który może powodować błąd 502 złej bramy Nginx.


Streszczenie

Błąd 502 Bad Gateway Nginx to częsty błąd, który mogą napotkać użytkownicy Nginx. Zwykle jest to spowodowane problemami z łącznością, przeciążeniem serwera, problemami z DNS, ograniczeniami zapory ogniowej lub błędami oprogramowania.

Jednak postępując zgodnie z krokami opisanymi w tym artykule, możesz rozwiązać problem i rozwiązać błąd 502 złej bramy nginx.

Jeśli żadna z powyższych metod nie zadziałała, niestety, rozważ skorzystanie z forów Nginx lub wysoce doświadczonego i wykwalifikowanego konsultanta Nginx.

Jeśli masz jakieś wskazówki lub sugestie dotyczące błędu 502 Bad Gateway Nginx, który mogliśmy przeoczyć w tym poście, lub jeśli chcesz podzielić się swoimi doświadczeniami z tym samym, daj nam znać w sekcji komentarzy poniżej. Czekamy na Twój wkład.


Przeczytaj: Jak naprawić wewnętrzny błąd serwera HTTP 500 w WordPress?


Często Zadawane Pytania

Jak naprawić 502 Bad Gateway nginx?

Możesz naprawić błąd 502 Bad Gateway nginx, postępując zgodnie z poniższymi metodami:
1. Sprawdź stan Nginx
2. Sprawdź stan serwera zaplecza
3. Sprawdź konfigurację DNS
4. Sprawdź konfigurację zapory
5. Zwiększ rozmiar bufora
6. Uruchom ponownie serwer Nginx
7. Sprawdź statystyki PHP-FPM

Jak mogę sprawdzić swój status nginx?

Aby sprawdzić status nginx, uruchom następującą komendę podaną poniżej:
stan systemctl nginx
Dane wyjściowe pokażą, czy nginx działa, czy nie.

Co to jest błąd 502 Bad Gateway?

Błąd 502 Bad Gateway Nginx to kod stanu HTTP, który reprezentuje serwer działający jako brama lub serwer proxy, który nie otrzymuje prawidłowej odpowiedzi z serwera nadrzędnego.