Jak naprawić typowe komunikaty o błędach Nginx: przewodnik krok po kroku

Opublikowany: 2023-06-05

Co to jest błąd NGINX?

Błąd Nginx odnosi się do czkawki lub usterki, która występuje podczas korzystania z serwera WWW Nginx. Nginx to powszechnie używany serwer WWW, na którym polega większość stron internetowych. Jednak, jak każde oprogramowanie, może napotkać błędy, które mogą zakłócić płynne działanie Twojej witryny.

Na przykład pomyśl o tym jak o wyboju na drodze, który może zakłócić normalne funkcjonowanie Twojej witryny lub dowolnej aplikacji internetowej. Nginx, będąc bardzo złożonym systemem oprogramowania, może czasami napotkać problemy spowodowane różnymi czynnikami. Takie jak nieprawidłowe ustawienia, problemy występujące po stronie serwera, problemy z siecią, a nawet błędy popełnione przez klienta.

Błędy Nginx mogą objawiać się w różnych formach, z których część być może już znasz. Należą do nich na przykład 502 Bad Gateway Error nginx, 404 Not Found Error, 503 Service Unavailable Error, 504 Gateway Timeout Error, a także błędy przekierowania (301 i 302).

Aby zapewnić bezproblemową obsługę odwiedzających witrynę, niezbędna jest skuteczna obsługa błędów nginx. Nginx, serwer sieciowy, od czasu do czasu napotyka błędy i komunikuje je za pomocą określonych kodów błędów. Znając te kody, możesz łatwo zidentyfikować charakter problemu i odpowiednio go naprawić.

W tym kompleksowym przewodniku zagłębimy się w typowe błędy Nginx, zbadamy ich przyczyny i przedstawimy praktyczne rozwiązania, które pomogą Ci skutecznie rozwiązywać problemy.


Spis treści
Co to jest błąd NGINX?
Niektóre typowe typy błędów Nginx
Co powoduje błąd NGINX?
Jak naprawić błąd Nginx?
Jak zapobiec przyszłym błędom Nginx?
Streszczenie
Często Zadawane Pytania

Niektóre typowe typy błędów Nginx

Błędy Nginx mogą wynikać z różnych źródeł, w tym z błędnej konfiguracji, problemów po stronie serwera, problemów z siecią lub żądań klientów. Rzućmy okiem na niektóre typowe typy błędów Nginx, które możesz napotkać:

Typowe komunikaty o błędach Nginx i rozwiązania:

1. 502 Błąd nieprawidłowej bramy:

  • Przyczyny: Ten błąd często występuje, gdy Nginx działa jako serwer proxy i nie otrzymuje prawidłowej odpowiedzi z serwera nadrzędnego.
  • Rozwiązania: Aby rozwiązać ten problem, sprawdź konfigurację serwera nadrzędnego, sprawdź łączność sieciową i upewnij się, że serwer działa.

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


2. 404 Nie znaleziono Błąd:

Gdy odwiedzasz witrynę skonfigurowaną za pomocą Nginx, pomyślnie łączy się ona z serwerem witryny, ale nie może znaleźć żądanych zasobów, takich jak nazwa pliku lub adres URL. Ten typ komunikatu o błędzie jest zwykle wywoływany z powodu problemów z plikiem konfiguracyjnym.

  • Przyczyny: Ten błąd wskazuje, że żądanego zasobu nie znaleziono na serwerze.
  • Rozwiązania: Aby rozwiązać ten problem, sprawdź, czy istnieje plik lub katalog nginx.conf, przejrzyj konfigurację adresu URL i sprawdź, czy nie ma problemów z rozróżnianiem wielkości liter.

Przeczytaj: Jak naprawić błąd 404 Not Found dla witryny WordPress i Androida?


3. 503 Usługa niedostępna Błąd:

  • Przyczyny: Ten błąd występuje, gdy serwer tymczasowo nie może obsłużyć żądań.
  • Rozwiązania: Aby rozwiązać ten problem, sprawdź obciążenie serwera, zrestartuj Nginx, przeanalizuj kondycję serwerów zaplecza lub zaimplementuj odpowiednie mechanizmy buforowania.

Przeczytaj: Jak naprawić „Błąd HTTP 503 Usługa niedostępna”?


4. 504 Błąd przekroczenia limitu czasu bramy (ciąg dalszy):

  • Przyczyny: Ten błąd zwykle występuje, gdy serwer nadrzędny nie odpowiada w określonym limicie czasu.
  • Rozwiązania: Aby rozwiązać ten problem, sprawdź konfigurację serwera nadrzędnego, zapewnij poprawną łączność sieciową i dostosuj ustawienia limitu czasu w Nginx, aby w razie potrzeby umożliwić dłuższe czasy odpowiedzi.

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


5. Problemy z przekierowaniem 301 i 302:

  • Przyczyny: te błędy występują, gdy występują problemy z przekierowaniem adresu URL, takie jak niepoprawne konfiguracje lub pętle w procesie przekierowania.
  • Rozwiązania:
  • Sprawdź konfigurację Nginx: Sprawdź pliki konfiguracyjne Nginx, aby upewnić się, że reguły przekierowania są poprawnie zdefiniowane. Zwykle plik konfiguracyjny znajduje się w /etc/nginx/nginx.conf lub w oddzielnym pliku w katalogu /etc/nginx/conf.d/ .
  • Sprawdź konfigurację bloku serwera: w pliku konfiguracyjnym zlokalizuj blok serwera odpowiadający domenie lub wirtualnemu hostowi, którego dotyczy problem. Upewnij się, że odpowiednia server_name w dyrektywie jest ustawiona na poprawną nazwę domeny.
  • Przejrzyj reguły przekierowania: Sprawdź bloki location lub bloki server , które definiują reguły przekierowania. Upewnij się, że dyrektywy rewrite lub return są odpowiednio skonfigurowane, aby przekierowywać żądania do żądanej lokalizacji. Zwróć uwagę na wyrażenia regularne i docelowe adresy URL.
  • Uruchom ponownie Nginx : Po wprowadzeniu jakichkolwiek zmian w plikach konfiguracyjnych musisz ponownie uruchomić usługę Nginx, aby zastosować zmiany. Użyj następującego polecenia, aby ponownie uruchomić Nginx:

sudo service nginx restart

  • Wyczyść pamięć podręczną przeglądarki : czasami przeglądarki przechowują odpowiedzi przekierowania w pamięci podręcznej. Wyczyść pamięć podręczną przeglądarki lub spróbuj uzyskać dostęp do witryny w oknie prywatnym lub incognito, aby upewnić się, że pamięć podręczna nie zakłóca przekierowania.
  • Przetestuj przekierowanie : otwórz przeglądarkę internetową i spróbuj uzyskać dostęp do adresu URL, który powinien uruchomić przekierowanie. Sprawdź, czy przekierowanie działa zgodnie z oczekiwaniami i czy osiągnięto żądane miejsce docelowe.
  • Sprawdź dzienniki pod kątem błędów: jeśli przekierowanie nadal nie działa, przejrzyj dzienniki błędów Nginx ( /var/log/nginx/error.log ) pod kątem odpowiednich komunikatów o błędach. Dzienniki mogą dostarczyć cennych informacji pozwalających zidentyfikować przyczynę problemu.

Wykonując te kroki, powinieneś być w stanie zdiagnozować i naprawić typowe problemy z przekierowaniami w Nginx.


Co powoduje błąd NGINX?

Błędy Nginx mogą być spowodowane różnymi czynnikami, w tym:

  • Składnia: Niepoprawna składnia w plikach konfiguracyjnych Nginx może prowadzić do błędów.
  • Problemy po stronie serwera: Problemy na serwerze, na którym działa Nginx, takie jak duże obciążenie lub niewystarczające zasoby, mogą powodować błędy.
  • Problemy z siecią: problemy z łącznością sieciową, rozpoznawaniem DNS lub ustawieniami zapory mogą powodować błędy Nginx.
  • Żądania klientów: nieprawidłowe lub źle sformułowane żądania od klientów mogą spowodować, że Nginx zwróci błędy.
  • Problemy z serwerem nadrzędnym: jeśli Nginx działa jako serwer proxy i przekazuje żądania do serwerów zaplecza, mogą wystąpić błędy, jeśli serwery nadrzędne nie odpowiadają poprawnie.

Ważne jest, aby zidentyfikować konkretną przyczynę błędu Nginx, aby zastosować odpowiednie rozwiązanie i skutecznie rozwiązać problem.


Jak naprawić błąd Nginx?

Po zapoznaniu się z niektórymi typowymi błędami NGINX możesz zadać sobie pytanie: „Jak naprawić błąd NGINX?”

Cóż, odpowiedź nie jest tak trudna, jak mogłoby się wydawać. Istnieją różne metody rozwiązywania problemów z NGINX. Należy jednak pamiętać, że te metody rozwiązywania problemów dotyczą tylko początkowej fazy. Konieczne jest dalsze badanie w celu ustalenia dokładnej przyczyny problemu.

Zasadniczo istnieją trzy polecenia, które mogą pomóc w rozpoczęciu podróży do rozwiązywania problemów z błędami NGINX.

  • Uzyskaj dziennik błędów i szczegóły problemu za pomocą tego polecenia: sudo cat /var/log/nginx/error.log
  • Aby sprawdzić status aktywności Nginx: sudo systemctl status nginx
  • Aby sprawdzić błędy składniowe w pliku konfiguracyjnym: sudo nginx -t

1. Rozwiązywanie problemów z błędami Nginx za pomocą dzienników błędów

Kiedy napotkasz problem z NGINX, większość z tych błędów NGINX jest niejasna i nie jest łatwo po prostu ustalić rzeczywisty problem. Błąd może zostać wywołany z powodu większego problemu lub może być całkowicie niezwiązany.

Wszystko zależy od tego, jak skonfigurowałeś konfigurację NGINX i od konkretnej sytuacji, z którą się mierzysz.

Aby lepiej zrozumieć występujące błędy NGINX, możesz uruchomić polecenie, aby wyświetlić listę tych błędów. Oto polecenie:

sudo cat /var/log/nginx/error.log

Aby uruchomić to polecenie, musisz być użytkownikiem uprzywilejowanym. Zaleca się posiadanie dostępu sudo zamiast używania użytkownika root.

To polecenie pozwala na odczytanie całej zawartości pliku /var/log/nginx/error.log, który zawiera logi błędów NGINX. Wyświetli te dzienniki w oknie terminala.

Uruchamiając to polecenie, będziesz mógł zobaczyć listę zarejestrowanych błędów NGINX. Pamiętaj o jednej rzeczy, jeśli w dzienniku nie ma żadnych błędów, po uruchomieniu polecenia nie zobaczysz żadnych danych wyjściowych.

Oto przykład dziennika błędów w celach informacyjnych,

2023/05/31 10:15:23 [error] 1234#0: *1 open() "/var/www/html/missing-page.html"
failed (2: No such file or directory), client: 192.168.0.1, server: example.com,
request: "GET /nonexistent-page HTTP/1.1", host: "example.com"

2023/05/31 12:45:57 [error] 1234#0: *2 upstream timed out (110: Connection timed out)
while reading response header from upstream, client: 192.168.0.2, server:
example.com, request: "GET /api/data HTTP/1.1", upstream:
"http://127.0.0.1:8000/api/data", host: "example.com"

2023/05/31 15:22:10 [error] 1234#0: *3 rewrite or internal redirection cycle while internally redirecting to "/index.php", client: 192.168.0.3, server: example.com, request: "GET /category/products/ HTTP/1.1", host: "example.com"

W tym przykładzie każda linia reprezentuje oddzielny błąd zarejestrowany przez NGINX. Podzielmy podane informacje:

  • Sygnatura czasowa: pierwsza część każdego wiersza zawiera datę i godzinę wystąpienia błędu w formacie YYYY/MM/DD HH:MM:SS .
  • Poziom błędu: Znacznik [error] wskazuje, że ta linia reprezentuje błąd.
  • Identyfikator procesu: liczba po symbolu # (np. 1234#0 ) reprezentuje identyfikator procesu NGINX obsługujący żądanie.
  • Komunikat o błędzie: Komunikat o błędzie zawiera szczegółowe informacje na temat konkretnego błędu. Obejmuje to informacje, takie jak awarie dostępu do plików lub zasobów, przekroczenie limitu czasu połączenia nadrzędnego lub problemy z wewnętrznym przekierowaniem.
  • Client IP: Pole client wyświetla adres IP klienta wysyłającego żądanie do serwera.
  • Nazwa serwera: Pole server wskazuje nazwę serwera lub wirtualnego hosta, na którym wystąpił błąd.
  • Szczegóły żądania: pole request pokazuje metodę HTTP, żądany adres URL i wersję protokołu używanego przez klienta.
  • Host: Pole host określa nazwę hosta lub adres IP użyty w żądaniu.

Każdy wpis w dzienniku błędów pomaga diagnozować i rozwiązywać problemy, dostarczając informacji o typie błędu, zasobie, którego dotyczy problem, adresie IP klienta i innych istotnych szczegółach.

2. Rozwiązywanie problemów z NGINX poprzez sprawdzenie jego statusu

Inną metodą, którą możesz spróbować rozwiązać problem z NGINX, jest sprawdzenie jego statusu, tj. czy jest aktywny, czy nie. Istnieje możliwość, że z pewnych przyczyn proces instalacji nie mógł zostać ukończony lub usługa nie jest jeszcze aktywna.

Aby sprawdzić status usługi NGINX, użyj następującego polecenia:

sudo systemctl status nginx

Jeśli usługa NGINX jest aktywna, dane wyjściowe będą następujące;

nginx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset:
enabled)
Active: active (running) since Mon 2023-05-31 14:30:00 UTC; 5min ago
Docs: http://nginx.org/en/docs/
Process: 1234 ExecStart=/usr/sbin/nginx -g daemon on;
master_process on;
(code=exited, status=0/SUCCESS)
Main PID: 1234 (nginx)
Tasks: 2 (limit: 2319)
Memory: 3.9M
CGroup: /system.slice/nginx.service
├─1234 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─5678 nginx: worker process

a jeśli status NGINX jest nieaktywny, wyjście sudo systemctl status nginx polecenie wskaże, że usługa jest nieaktywna lub zatrzymana w następujący sposób.

nginx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Docs: http://nginx.org/en/docs/

W takim przypadku jedyne, co musisz zrobić, to zrestartować usługę NGINX za pomocą tego polecenia:

sudo systemctl restart nginx

Następnie możesz ponownie użyć polecenia status, aby sprawdzić, czy usługa NGINX jest teraz aktywna, czy nie.

3. Rozwiązywanie problemów z NGINX poprzez sprawdzenie błędu składni

Błędy składniowe to częsty problem, który może pojawić się podczas pisania skryptów, kodów lub konfigurowania plików Nginx.

Niezależnie od tego, czy użyłeś nieprawidłowej struktury składni, czy pominięto pewne znaki, niepoprawna składnia uniemożliwi poprawne działanie kodu lub konfiguracji.

W przypadku plików konfiguracyjnych Nginx składają się one z różnych dyrektyw, z których każda musi być dokładnie zadeklarowana do prawidłowego działania. W przeciwnym razie nie będzie działać zgodnie z przeznaczeniem.

Aby sprawdzić, czy w pliku konfiguracyjnym Nginx nie ma błędów składniowych, użyj następującego polecenia.

sudo nginx -t

Jeśli składnia okazała się poprawna, wyjściem będzie,

nginx: configuration file /etc/nginx/nginx.conf test is successful

Jeśli jednak wystąpi problem w składni, dane wyjściowe zostaną wyświetlone jako:

nginx: [emerg] unexpected end of file, expecting ";" or "}" in
/etc/nginx/nginx.conf:42
nginx: configuration file /etc/nginx/nginx.conf test failed

Wykonując tę ​​kontrolę, możesz zidentyfikować i poprawić wszelkie błędy składniowe, gwarantując, że konfiguracja Nginx jest dokładna i kompletna. Dobrą praktyką jest uruchamianie tego polecenia za każdym razem, gdy wprowadzasz zmiany w pliku konfiguracyjnym lub przed ponownym uruchomieniem Nginx, aby uniknąć problemów spowodowanych błędami składniowymi.


Uwaga: Zdecydowanie zalecamy uruchomienie tego polecenia składni, aby sprawdzić, czy w pliku konfiguracyjnym Nginx nie ma błędów i upewnić się, że niczego nie brakuje.


Jak zapobiec przyszłym błędom Nginx?

Możesz także podjąć środki zapobiegawcze, aby uniknąć błędów nginx w przyszłości. Wszystko, co musisz zrobić, to postępować zgodnie ze wskazówkami wymienionymi poniżej:

1. Regularne aktualizacje oprogramowania: Aktualizuj swój serwer Nginx, instalując najnowsze aktualizacje oprogramowania. Aktualizacje często obejmują poprawki błędów, poprawki zabezpieczeń i ulepszenia wydajności, które mogą zapobiegać znanym problemom lub je rozwiązywać.

2. Monitorowanie i alerty: Zaimplementuj system monitorowania, aby mieć oko na kondycję i wydajność serwera Nginx. Skonfiguruj alerty, aby powiadamiać Cię o wszelkich nietypowych działaniach, błędach lub potencjalnych problemach, umożliwiając podjęcie proaktywnych działań, zanim wpłyną one na Twoją witrynę.

3. Optymalizacja wydajności: Zoptymalizuj konfigurację Nginx, aby zwiększyć wydajność i zmniejszyć prawdopodobieństwo błędów. Dostosuj ustawienia związane z buforowaniem, rozmiarami buforów i limitami połączeń, aby zapewnić wydajną obsługę żądań i zminimalizować ryzyko błędów.


Streszczenie

Podsumowując, błędy Nginx mogą wystąpić podczas korzystania z serwera sieciowego Nginx, powodując zakłócenia w Twojej witrynie lub aplikacji internetowej. Błędy te występują w różnych formach, w tym 502 Bad Gateway Error, 404 Not Found Error, 503 Service Unavailable Error, 504 Gateway Timeout Error oraz błędy przekierowania (301 i 302).

Aby skutecznie rozwiązywać problemy z błędami Nginx, ważne jest zrozumienie ich przyczyn i podjęcie odpowiednich działań. Typowe wyzwalacze błędów Nginx obejmują błędy w plikach konfiguracyjnych, problemy po stronie serwera, problemy z siecią lub żądania klientów. Praktyczne rozwiązania obejmują diagnozowanie głównej przyczyny poprzez sprawdzanie dzienników błędów, wyszukiwanie błędów składniowych lub monitorowanie stanu aktywności Nginx.

Pamiętaj, że chociaż te metody rozwiązywania problemów mogą początkowo być pomocne, dalsze badanie może być konieczne w celu ustalenia dokładnej przyczyny problemu.

Postępując zgodnie z tymi metodami rozwiązywania problemów i wdrażając odpowiednie rozwiązania, możesz skutecznie diagnozować i naprawiać typowe błędy Nginx, zapewniając bezproblemowe działanie odwiedzającym Twoją witrynę.

Często Zadawane Pytania

Jak naprawić błąd Nginx?

Pierwszą rzeczą, którą musisz zrobić, to uruchomić następujące polecenia, aby uzyskać dziennik błędów, status NGinx i sprawdzić błąd składni.
1. Uzyskaj dziennik błędów i szczegóły problemu za pomocą tego polecenia: sudo cat /var/log/nginx/error.log
2. Aby sprawdzić status aktywności Nginx: sudo systemctl status nginx
3. Aby sprawdzić błędy składniowe w pliku konfiguracyjnym: sudo nginx -t

Na czym polega błąd Nginx?

Błąd Nginx odnosi się do czkawki lub usterki, która występuje podczas korzystania z serwera WWW Nginx. Nginx to powszechnie używany serwer WWW, na którym polega większość stron internetowych. Jednak, jak każde oprogramowanie, może napotkać błędy, które mogą zakłócić płynne działanie Twojej witryny.

Co powoduje błąd NGINX?

Przyczyny powodujące błąd NGINX to:
1. Błąd składni
2. Problemy po stronie serwera
3. Problemy z siecią
4. Żądania klientów
5. Problemy z serwerem Uptime