Cum se remediază eroarea 502 Bad Gateway NGINX? (7 metode)

Publicat: 2023-04-20

Nginx este un server web cu sursă deschisă bine-cunoscut, care este foarte popular pentru performanța, scalabilitatea și flexibilitatea sa. Cu toate acestea, similar altor servere web, Nginx se poate confrunta cu erori care îi împiedică capacitatea de a livra conținut clienților. O astfel de eroare este eroarea 502 Bad Gateway Nginx.

Întâmpinarea erorilor poate fi destul de frustrantă și confuză, mai ales dacă nu sunteți competent din punct de vedere tehnic. Este posibil să întâlniți mai multe erori proeminente similare, cum ar fi ecranul alb al morții și eroarea de stabilire a conexiunii la baza de date. Dar eroarea 502 bad gateway nginx este una foarte populară.

Pot exista mai multe motive posibile pentru care se întâmplă această eroare și, prin urmare, diferite modalități de a o depana. În această postare, vă vom spune ce înseamnă cu adevărat 502 gateway defect Nginx, posibilele sale cauze și care sunt cea mai bună metodă de depanare pe care trebuie să o urmați.

Să începem!


Cuprins
Ce este o eroare 502 Bad Gateway Nginx?
Ce cauzează o eroare 502 Bad Gateway Nginx?
Cum să remediați un Gateway Bad 502 Nginx?
rezumat
întrebări frecvente

Citiți: 15 metode pentru a remedia eroarea 502 Bad Gateway pe site-ul dvs. web


Ce este o eroare 502 Bad Gateway Nginx?

O eroare 502 Bad Gateway Nginx este un cod de stare HTTP care reprezintă un server care acționează ca un gateway sau un server proxy care nu primește un răspuns valid de la un server din amonte. În cazul lui Nginx, apare o eroare de gateway defect 502 atunci când serverul nu poate stabili o conexiune cu serverul din amonte sau când serverul din amonte returnează un răspuns nevalid.

Această eroare este frecvent întâlnită atunci când încercați să accesați un site web sau o aplicație web care este găzduită în spatele unui proxy invers sau al unui echilibrator de încărcare.

Există mai multe variante ale erorii 502 Bad gateway Nginx, pe care le puteți găsi pe diferite site-uri. De exemplu:

  • Eroare HTTP 502 - Gateway greșit
  • 502 Eroare proxy
  • 502 Bad Gateway
  • 502 Service supraîncărcat temporar
  • HTTP 502
  • 502 Gateway greșit NGINX
  • Eroare 502

Ce cauzează o eroare 502 Bad Gateway Nginx?

Pot exista mai multe motive pentru care poate apărea o eroare 502 Bad Gateway în Nginx, dar iată câteva dintre cele mai comune enumerate mai jos:

Supraîncărcare server

Când un server backend primește prea multe solicitări, acesta poate deveni supraîncărcat și nu poate răspunde în perioada de expirare. Acest lucru cauzează o eroare 502, deoarece serverul din amonte nu poate îndeplini cererea clientului. Dimensionarea corectă a serverului, alocarea resurselor, echilibrarea sarcinii și strategiile de scalare pot preveni supraîncărcarea serverului.

Probleme de conectivitate

  • Problemele de conectivitate pot cauza o eroare 502 Bad Gateway în Nginx atunci când există o problemă cu conexiunea la rețea între serverul proxy invers și serverul backend.
  • Acest lucru se poate întâmpla din cauza congestionării rețelei, a setărilor de rețea configurate greșit sau a defecțiunilor hardware.
  • Când serverul proxy invers încearcă să redirecționeze o solicitare către serverul backend, dar nu poate stabili o conexiune, returnează o eroare 502 clientului.
  • Eroarea apare deoarece serverul proxy invers acționează ca un intermediar între client și serverul backend și nu se poate conecta la serverul backend pentru a îndeplini cererea clientului.
  • Depanarea setărilor de rețea, verificarea regulilor de firewall și monitorizarea traficului de rețea pot ajuta la remedierea problemei.

Probleme DNS

  • Problemele DNS pot cauza o eroare 502 Bad Gateway în Nginx atunci când rezoluția DNS pentru serverul backend eșuează.
  • Acest lucru se poate întâmpla din cauza configurațiilor DNS incorecte, a defecțiunilor serverului DNS sau a problemelor de cache DNS.
  • Când un client trimite o solicitare către serverul proxy invers, serverul proxy invers trebuie să rezolve numele de domeniu al serverului backend la o adresă IP.
  • Dacă rezoluția DNS nu reușește, serverul proxy invers nu poate redirecționa cererea către serverul backend, rezultând o eroare 502 returnată clientului.

Citește: Ce este DNS?


Restricții pentru firewall

  • Restricțiile de firewall pot provoca o eroare 502 Bad Gateway în Nginx atunci când un firewall blochează conexiunea dintre serverul proxy invers și serverul backend.
  • Acest lucru se poate întâmpla atunci când firewall-ul este configurat pentru a restricționa traficul către și de la anumite adrese IP sau porturi.
  • Când serverul proxy invers încearcă să se conecteze la serverul backend, dar firewall-ul blochează conexiunea, returnează o eroare 502 clientului.
  • Acest lucru se întâmplă deoarece serverul proxy invers acționează ca un intermediar între client și serverul backend și nu poate stabili o conexiune cu serverul backend pentru a îndeplini cererea clientului.
  • Pentru a remedia problemele legate de firewall care provoacă o eroare 502, poate fi necesar să ajustați regulile de firewall pentru a permite traficului să circule între serverele proxy invers și backend.

Erori software

  • O eroare 502 Bad Gateway poate apărea din cauza unei erori software sau a unei configurări greșite în serverul proxy invers sau serverul backend.
  • Această eroare se poate întâmpla din cauza erorilor de codare sau a configurărilor greșite ale modulelor sau aplicațiilor serverului.
  • Dacă software-ul sau configurația oricărui server conține o eroare, este posibil ca acesta să nu gestioneze cererile sau să nu răspundă în perioada de expirare, ceea ce duce la returnarea clientului unei erori 502.
  • Pentru a remedia problemele legate de software care provoacă o eroare 502, poate fi necesar să examinați jurnalele atât ale serverelor proxy inverse, cât și ale serverelor backend pentru a identifica orice erori sau mesaje de avertizare.

PHP-FMP durează prea mult să răspundă

  • PHP-FPM (FastCGI Process Manager) poate provoca o eroare 502 Bad Gateway în Nginx atunci când nu răspunde în perioada de expirare sau întâmpină o eroare critică.
  • Această eroare se poate întâmpla din cauza resurselor insuficiente, a unei configurări greșite sau a unei erori în codul PHP.
  • PHP-FPM este o modalitate populară de a rula aplicații PHP în Nginx, unde Nginx trimite cererea către PHP-FPM și procesează codul PHP și returnează rezultatul către Nginx, care apoi trimite răspunsul înapoi clientului.
  • Pentru a remedia problemele legate de PHP-FPM, poate fi necesar să ajustați configurația PHP-FPM pentru a crește numărul de procese sau fire sau pentru a ajusta setările de timeout.
  • De asemenea, poate fi necesar să examinați codul PHP pentru a identifica și remedia eventualele erori sau probleme de performanță.
  • În plus, monitorizarea jurnalelor de server și a resurselor de sistem poate ajuta la identificarea oricăror modele sau tendințe care ar putea indica o problemă mai mare cu PHP-FPM.

Citiți: Cum se remediază eroarea HTTP 504 Gateway Timeout?


Cum să remediați un Gateway Bad 502 Nginx?

Iată câteva dintre cele mai bune soluții pe care le puteți urma pentru a remedia o eroare 502 Bad Gateway Nginx:

  • Verificați starea lui Nginx
  • Verificați starea serverului de backend
  • Verificați configurația DNS
  • Verificați configurația paravanului de protecție
  • Măriți dimensiunea tamponului
  • Reporniți serverul Nginx
  • Verificați starea PHP-FPM

Verificați starea lui Nginx

Primul lucru pe care trebuie să-l faceți este să verificați dacă Nginx rulează și răspunde la solicitări sau nu. Pentru a face asta, executați următoarea comandă prezentată mai jos:

Dacă Nginx rulează, veți primi un mesaj de ieșire ceva de genul acesta,

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/

Dacă Nginx nu rulează, veți primi un mesaj de ieșire ceva de genul acesta,

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/

Acum, în cazul în care Nginx nu rulează, trebuie să-l porniți din nou utilizând următoarea comandă,

systemctl start nginx

Verificați starea serverului de backend

  • Conectați-vă la serverul proxy invers care găzduiește Nginx.
  • Deschideți o fereastră de terminal și executați următoarea comandă:

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

• Înlocuiți „backend-server-ip-address” cu adresa IP a serverului dumneavoastră backend.

• Verificaţi codul de stare HTTP din ieşirea comenzii. Dacă serverul backend rulează corect, ar trebui să vedeți un cod de stare de 200 OK.

• Dacă primiți un alt cod de stare decât 200, acesta indică faptul că poate exista o problemă cu serverul backend. Puteți investiga în continuare problema examinând jurnalele serverului de backend pentru a identifica orice erori sau mesaje de avertizare.

Verificați configurația DNS

Dacă rezoluția DNS nu reușește, serverul proxy invers nu poate redirecționa cererea către serverul backend, rezultând o eroare 502 Bad Gateway care este returnată clientului. Prin urmare, este important să verificați dacă configurația DNS pentru serverul backend este corectă.

Pentru a verifica configurația DNS, puteți efectua următorii pași:

  • Conectați-vă la serverul proxy invers care găzduiește Nginx.
  • Deschideți o fereastră de terminal și executați următoarea comandă:

nslookup backend-server-domain-name

Înlocuiți „backend-server-domain-name” cu numele de domeniu al serverului dumneavoastră backend.

• Verificați rezultatul comenzii pentru a verifica dacă adresa IP corectă este returnată pentru serverul backend.

  • Dacă rezultatul comenzii indică faptul că rezoluția DNS a eșuat, este posibil să existe o problemă cu configurația DNS. Puteți investiga în continuare problema verificând setările DNS pentru numele de domeniu al serverului backend sau contactând furnizorul DNS pentru asistență.

Verificați configurația paravanului de protecție

Se recomandă să verificați jurnalele paravanului de protecție pentru un blocaj neobișnuit. Uneori, firewall-urile previn sau blochează site-urile. Pentru a depăși această problemă, trebuie să dezactivați temporar firewall-urile și să verificați dacă problema persistă sau este rezolvată.

Măriți dimensiunea tamponului

Creșterea dimensiunii bufferului permite Nginx să stocheze mai multe date din răspunsul serverului, asigurându-se că răspunsul este complet și fără erori. Pentru a crește dimensiunea bufferului, trebuie să editați fișierul de configurare Nginx și să adăugați următoarele directive.

  • proxy_buffer_size : Setează dimensiunea fiecărui buffer. Valoarea implicită este de obicei 4K. Îl puteți crește la o valoare mai mare în funcție de cerințele serverului dvs. De exemplu, pentru a seta dimensiunea tamponului la 16K, adăugați următoarea linie la fișierul dvs. de configurare:

proxy_buffer_size 16k;

  • proxy_buffers : Setează numărul de buffer-uri de alocat. Valoarea implicită este de obicei 8. O puteți crește la o valoare mai mare în funcție de cerințele serverului dvs. De exemplu, pentru a seta numărul de buffere la 32 și dimensiunea bufferului la 16K, adăugați următoarea linie la fișierul dvs. de configurare:

proxy_buffers 32 16k;


Notă: Este important să rețineți că creșterea dimensiunii și a numărului de buffer-uri va crește utilizarea memoriei pe server. Deci, ar trebui să experimentați cu diferite dimensiuni și numere de buffer pentru a găsi setarea optimă pentru serverul și aplicația dvs.


  • După ce faceți modificări în fișierul de configurare Nginx, salvați fișierul și reporniți Nginx pentru ca modificările să aibă efect. Puteți face acest lucru rulând următoarea comandă:

sudo service nginx restart

Reporniți serverul Nginx

În unele cazuri, doar repornirea serverului Nginx poate rezolva eroarea 502 de gateway greșit Nginx. Pentru a face acest lucru,

Trebuie să rulați o comandă în terminal sau shell. Comanda exactă depinde de sistemul de operare și de distribuția pe care o utilizați, dar iată câteva exemple:

  • Ubuntu și Debian:

sudo service nginx restart

  • CentOS, Fedora și RHEL:

sudo systemctl restart nginx

  • macOS :

sudo nginx -s reload

Aceste comenzi vor reporni cu grație serverul Nginx, ceea ce înseamnă că va aștepta ca toate conexiunile active să se termine înainte de a se închide și de a începe din nou.

Verificați starea PHP-FPM

Uneori, eroarea 502 Bad Gateway Nginx poate fi declanșată și de PHP-FPM care nu rulează. Prin urmare, este necesar să verificați starea PHP-FPM pentru a vă asigura că funcționează corect.

Pentru a verifica starea de rulare, puteți folosi următoarea comandă,

sudo service php-fpm status

Dacă PHP-FPM rulează, ar trebui să vedeți un mesaj care spune că este activ.

Cu toate acestea, în cazul în care PHP-FPM nu rulează, puteți încerca să-l reporniți folosind următoarea comandă:

sudo service php-fpm restart

Această comandă va reporni serviciul PHP-FPM, care poate ajuta la rezolvarea oricărei probleme care ar putea declanșa o eroare 502 de gateway greșit Nginx.


rezumat

O eroare 502 Bad Gateway Nginx este o eroare comună pe care utilizatorii Nginx o pot întâlni. De obicei, este cauzată de probleme de conectivitate, supraîncărcare server, probleme DNS, restricții firewall sau erori software.

Cu toate acestea, urmând pașii menționați în acest articol, puteți depana și rezolva o eroare 502 gateway nginx greșită.

Dacă niciuna dintre metodele de mai sus nu a funcționat pentru dvs., din păcate, luați în considerare să solicitați asistență de la forumurile Nginx sau de la un consultant Nginx cu experiență și calificare.

Dacă aveți sfaturi sau sugestii cu privire la eroarea 502 Bad Gateway Nginx pe care este posibil să o fi ratat în această postare sau dacă doriți să împărtășiți experiența dvs. cu aceeași, vă rugăm să ne spuneți în secțiunea de comentarii de mai jos. Salutăm contribuția dvs.


Citiți: Cum să remediați eroarea serverului intern HTTP 500 în WordPress?


întrebări frecvente

Cum repar 502 Bad gateway nginx?

Puteți remedia eroarea 502 Bad Gateway nginx urmând metodele de mai jos:
1. Verificați starea lui Nginx
2. Verificați starea serverului de backend
3. Verificați configurația DNS
4. Verificați configurația paravanului de protecție
5. Măriți dimensiunea tamponului
6. Reporniți serverul Nginx
7. Verificați statistica PHP-FPM

Cum îmi verific starea nginx?

Pentru a verifica starea nginx, rulați următoarea comandă prezentată mai jos:
starea systemctl nginx
Ieșirea va arăta dacă nginx rulează sau nu.

Ce este o eroare 502 Bad gateway?

O eroare 502 Bad Gateway Nginx este un cod de stare HTTP care reprezintă un server care acționează ca un gateway sau un server proxy care nu primește un răspuns valid de la un server din amonte.