Come correggere l'errore 502 Bad Gateway NGINX? (7 metodi)

Pubblicato: 2023-04-20

Nginx è un noto server Web open source molto popolare per le sue prestazioni, scalabilità e flessibilità. Tuttavia, analogamente ad altri server Web, Nginx può riscontrare errori che ne ostacolano la capacità di fornire contenuti ai client. Uno di questi errori è l'errore 502 Bad Gateway Nginx.

Incontrare errori può essere piuttosto frustrante e confondere, soprattutto se non si è tecnicamente competenti. Potresti imbatterti in diversi errori importanti simili, come lo schermo bianco della morte e l'errore che stabilisce la connessione al database. Ma l'errore 502 bad gateway nginx è molto popolare.

Possono esserci più ragioni possibili per questo errore e quindi diversi modi per risolverlo. In questo post, ti diremo cosa significa veramente 502 bad gateway Nginx, le sue possibili cause e quali sono i migliori metodi di risoluzione dei problemi che devi seguire.

Cominciamo!


Sommario
Che cos'è un errore 502 Bad Gateway Nginx?
Cosa causa un errore 502 Bad Gateway Nginx?
Come risolvere un 502 Bad Gateway Nginx?
Riepilogo
Domande frequenti

Leggi: 15 metodi per correggere l'errore 502 Bad Gateway sul tuo sito web


Che cos'è un errore 502 Bad Gateway Nginx?

Un errore 502 Bad Gateway Nginx è un codice di stato HTTP che rappresenta un server che funge da gateway o server proxy che non riesce a ricevere una risposta valida da un server upstream. Nel caso di Nginx, si verifica un errore 502 bad gateway quando il server non è in grado di stabilire una connessione con il server upstream o quando il server upstream restituisce una risposta non valida.

Questo errore viene comunemente visualizzato quando si tenta di accedere a un sito Web o a un'applicazione Web ospitata dietro un proxy inverso o un bilanciatore del carico.

Esistono diverse varianti dell'errore 502 Bad gateway Nginx che potresti trovare su diversi siti. Per esempio:

  • Errore HTTP 502- Gateway errato
  • Errore proxy 502
  • errore di connessione 502 Bad Gateway
  • 502 Servizio temporaneamente sovraccarico
  • HTTP 502
  • 502 Gateway errato NGINX
  • Errore 502

Cosa causa un errore 502 Bad Gateway Nginx?

Ci possono essere diversi motivi per cui può verificarsi un errore 502 Bad Gateway in Nginx, ma qui ci sono alcuni dei più comuni elencati di seguito:

Sovraccarico del server

Quando un server back-end riceve troppe richieste, può sovraccaricarsi e non rispondere entro il periodo di timeout. Ciò causa un errore 502 poiché il server upstream non è in grado di soddisfare la richiesta del client. Il corretto dimensionamento del server, l'allocazione delle risorse, il bilanciamento del carico e le strategie di ridimensionamento possono prevenire il sovraccarico del server.

Problemi di connettività

  • I problemi di connettività possono causare un errore 502 Bad Gateway in Nginx quando si verifica un problema con la connessione di rete tra il server proxy inverso e il server back-end.
  • Ciò può verificarsi a causa di congestione della rete, impostazioni di rete configurate in modo errato o errori hardware.
  • Quando il server proxy inverso tenta di inoltrare una richiesta al server back-end ma non riesce a stabilire una connessione, restituisce un errore 502 al client.
  • L'errore si verifica perché il server proxy inverso funge da intermediario tra il client e il server back-end e non è in grado di connettersi al server back-end per soddisfare la richiesta del client.
  • La risoluzione dei problemi relativi alle impostazioni di rete, il controllo delle regole del firewall e il monitoraggio del traffico di rete possono aiutare a risolvere il problema.

Problemi DNS

  • I problemi DNS possono causare un errore 502 Bad Gateway in Nginx quando la risoluzione DNS per il server back-end fallisce.
  • Ciò può accadere a causa di configurazioni DNS errate, errori del server DNS o problemi di memorizzazione nella cache DNS.
  • Quando un client invia una richiesta al server proxy inverso, il server proxy inverso deve risolvere il nome di dominio del server back-end in un indirizzo IP.
  • Se la risoluzione DNS non riesce, il server proxy inverso non può inoltrare la richiesta al server back-end, generando un errore 502 restituito al client.

Leggi: Cos'è il DNS?


Restrizioni firewall

  • Le restrizioni del firewall possono causare un errore 502 Bad Gateway in Nginx quando un firewall blocca la connessione tra il server proxy inverso e il server back-end.
  • Questo può accadere quando il firewall è configurato per limitare il traffico da e verso specifici indirizzi IP o porte.
  • Quando il server proxy inverso tenta di connettersi al server back-end, ma il firewall blocca la connessione, restituisce un errore 502 al client.
  • Ciò si verifica perché il server proxy inverso funge da intermediario tra il client e il server back-end e non può stabilire una connessione con il server back-end per soddisfare la richiesta del client.
  • Per risolvere i problemi relativi al firewall che causano un errore 502, potrebbe essere necessario modificare le regole del firewall per consentire il flusso del traffico tra il proxy inverso e i server back-end.

Bug del software

  • Un errore 502 Bad Gateway può verificarsi a causa di un bug del software o di una configurazione errata nel server proxy inverso o nel server back-end.
  • Questo errore può verificarsi a causa di errori di codifica o configurazioni errate di moduli o applicazioni del server.
  • Se il software o la configurazione di uno dei server contiene un bug, potrebbe non riuscire a gestire le richieste o rispondere entro il periodo di timeout, con conseguente restituzione di un errore 502 al client.
  • Per risolvere i problemi relativi al software che causano un errore 502, potrebbe essere necessario esaminare i registri del proxy inverso e dei server back-end per identificare eventuali errori o messaggi di avviso.

PHP-FMP sta impiegando troppo tempo per rispondere

  • PHP-FPM (FastCGI Process Manager) può causare un errore 502 Bad Gateway in Nginx quando non risponde entro il periodo di timeout o incontra un errore critico.
  • Questo errore può verificarsi a causa di risorse insufficienti, configurazione errata o bug nel codice PHP.
  • PHP-FPM è un modo popolare di eseguire applicazioni PHP in Nginx, dove Nginx invia la richiesta a PHP-FPM ed elabora il codice PHP e restituisce il risultato a Nginx, che quindi invia la risposta al client.
  • Per risolvere i problemi relativi a PHP-FPM, potrebbe essere necessario modificare la configurazione di PHP-FPM per aumentare il numero di processi o thread o modificare le impostazioni di timeout.
  • Potrebbe anche essere necessario esaminare il codice PHP per identificare e correggere eventuali bug o problemi di prestazioni.
  • Inoltre, il monitoraggio dei log del server e delle risorse di sistema può aiutare a identificare eventuali modelli o tendenze che potrebbero indicare un problema più ampio con PHP-FPM.

Leggi: Come correggere l'errore di timeout del gateway HTTP 504?


Come risolvere un 502 Bad Gateway Nginx?

Ecco alcune delle migliori soluzioni che puoi seguire per correggere un errore 502 Bad Gateway Nginx:

  • Controlla lo stato di Nginx
  • Controlla lo stato del server di back-end
  • Controlla la configurazione del DNS
  • Controlla la configurazione del firewall
  • Aumenta la dimensione del buffer
  • Riavvia il server Nginx
  • Controlla lo stato di PHP-FPM

Controlla lo stato di Nginx

La prima cosa che devi fare è verificare se Nginx è in esecuzione e risponde alle richieste o meno. Per fare ciò, eseguire il seguente comando indicato di seguito:

Se Nginx è in esecuzione, riceverai un messaggio di output simile a questo,

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/

Se Nginx non è in esecuzione, riceverai un messaggio di output simile a questo,

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/

Ora, nel caso in cui Nginx non sia in esecuzione, devi riavviarlo utilizzando il seguente comando,

systemctl start nginx

Controlla lo stato del server di back-end

  • Accedi al server proxy inverso che ospita Nginx.
  • Apri una finestra di terminale ed esegui il seguente comando:

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

• Sostituisci "indirizzo-ip-server-backend" con l'indirizzo IP del tuo server back-end.

• Verificare il codice di stato HTTP nell'output del comando. Se il server back-end funziona correttamente, dovresti visualizzare un codice di stato 200 OK.

• Se ricevi un codice di stato diverso da 200, indica che potrebbe esserci un problema con il server di backend. Puoi esaminare ulteriormente il problema esaminando i log del server back-end per identificare eventuali errori o messaggi di avviso.

Controlla la configurazione del DNS

Se la risoluzione DNS non riesce, il server proxy inverso non può inoltrare la richiesta al server back-end, generando un errore 502 Bad Gateway restituito al client. Pertanto, è importante verificare che la configurazione DNS per il server back-end sia corretta.

Per verificare la configurazione DNS, è possibile eseguire i seguenti passaggi:

  • Accedi al server proxy inverso che ospita Nginx.
  • Apri una finestra di terminale ed esegui il seguente comando:

nslookup backend-server-domain-name

Sostituisci "nome-dominio-server-backend" con il nome di dominio del tuo server back-end.

• Controllare l'output del comando per verificare che venga restituito l'indirizzo IP corretto per il server back-end.

  • Se l'output del comando indica che la risoluzione DNS non è riuscita, potrebbe esserci un problema con la configurazione DNS. Puoi esaminare ulteriormente il problema controllando le impostazioni DNS per il nome di dominio del server di back-end o contattando il tuo provider DNS per assistenza.

Controlla la configurazione del firewall

Si consiglia di controllare i registri del firewall per un blocco insolito. A volte i firewall impediscono o bloccano anche i siti. Per superare questo problema, è necessario disabilitare temporaneamente i firewall e verificare se il problema persiste o è stato risolto.

Aumenta la dimensione del buffer

L'aumento della dimensione del buffer consente a Nginx di archiviare più dati dalla risposta del server, garantendo che la risposta sia completa e priva di errori. Per aumentare la dimensione del buffer, è necessario modificare il file di configurazione di Nginx e aggiungere le seguenti direttive.

  • proxy_buffer_size : imposta la dimensione di ciascun buffer. Il valore predefinito è in genere 4K. Puoi aumentarlo a un valore superiore a seconda dei requisiti del tuo server. Ad esempio, per impostare la dimensione del buffer su 16K, aggiungi la seguente riga al tuo file di configurazione:

proxy_buffer_size 16k;

  • proxy_buffers : imposta il numero di buffer da allocare. Il valore predefinito è in genere 8. È possibile aumentarlo a un valore superiore in base ai requisiti del server. Ad esempio, per impostare il numero di buffer su 32 e la dimensione del buffer su 16K, aggiungi la seguente riga al file di configurazione:

proxy_buffers 32 16k;


Nota: è importante notare che l'aumento della dimensione del buffer e del numero di buffer aumenterà l'utilizzo della memoria sul server. Pertanto, dovresti sperimentare diverse dimensioni di buffer e numeri di buffer per trovare l'impostazione ottimale per il tuo server e la tua applicazione.


  • Dopo aver apportato modifiche al file di configurazione di Nginx, salvare il file e riavviare Nginx affinché le modifiche abbiano effetto. Puoi farlo eseguendo il seguente comando:

sudo service nginx restart

Riavvia il server Nginx

In alcuni casi, il solo riavvio del server Nginx può risolvere l'errore 502 bad gateway Nginx. Per fare questo,

Devi eseguire un comando nel tuo terminale o shell. Il comando esatto dipende dal sistema operativo e dalla distribuzione che stai utilizzando, ma ecco alcuni esempi:

  • Ubuntu e Debian:

sudo service nginx restart

  • CentOS, Fedora e RHEL:

sudo systemctl restart nginx

  • macOS :

sudo nginx -s reload

Questi comandi riavvieranno con garbo il server Nginx, il che significa che attenderà il completamento di eventuali connessioni attive prima di spegnersi e riavviarsi.

Controlla lo stato di PHP-FPM

A volte, l'errore 502 Bad Gateway Nginx può anche essere attivato da PHP-FPM non in esecuzione. Pertanto, è necessario controllare lo stato di PHP-FPM per assicurarsi che funzioni correttamente.

Per verificare lo stato di esecuzione, è possibile utilizzare il seguente comando,

sudo service php-fpm status

Se PHP-FPM è in esecuzione, dovresti vedere un messaggio che indica che è attivo.

Tuttavia, nel caso in cui PHP-FPM non sia in esecuzione, puoi provare a riavviarlo utilizzando il seguente comando:

sudo service php-fpm restart

Questo comando riavvierà il servizio PHP-FPM, che può aiutare a risolvere qualsiasi problema che potrebbe attivare un errore 502 bad gateway Nginx.


Riepilogo

Un errore 502 Bad Gateway Nginx è un errore comune che gli utenti Nginx potrebbero riscontrare. In genere è causato da problemi di connettività, sovraccarico del server, problemi DNS, restrizioni del firewall o bug del software.

Tuttavia, seguendo i passaggi descritti in questo articolo, è possibile risolvere e risolvere un errore 502 bad gateway nginx.

Se nessuno dei metodi di cui sopra ha funzionato per te, sfortunatamente, considera di chiedere assistenza ai forum Nginx o a un consulente Nginx altamente esperto e qualificato.

Se hai suggerimenti o suggerimenti riguardanti l'errore 502 Bad Gateway Nginx che potremmo aver perso in questo post o se desideri condividere la tua esperienza con lo stesso, faccelo sapere nella sezione commenti qui sotto. Accogliamo con favore il tuo contributo.


Leggi: Come correggere l'errore interno del server HTTP 500 in WordPress?


Domande frequenti

Come posso correggere 502 Bad gateway nginx?

Puoi correggere l'errore 502 Bad Gateway nginx seguendo i seguenti metodi:
1. Controlla lo stato di Nginx
2. Controllare lo stato del server di back-end
3. Controllare la configurazione DNS
4. Controllare la configurazione del firewall
5. Aumentare la dimensione del buffer
6. Riavvia il server Nginx
7. Controlla le statistiche PHP-FPM

Come posso controllare il mio stato nginx?

Per verificare lo stato di nginx, eseguire il seguente comando indicato di seguito:
systemctl status nginx
L'output mostrerà se nginx è in esecuzione o meno.

Che cos'è un errore 502 Bad gateway?

Un errore 502 Bad Gateway Nginx è un codice di stato HTTP che rappresenta un server che funge da gateway o server proxy che non riesce a ricevere una risposta valida da un server upstream.