Risolvere gli errori 502 Bad Gateway di Nginx: Guida passo dopo passo
Questa guida completa illustra le cause comuni degli errori 502 di Nginx, inclusi i problemi di configurazione del proxy, e fornisce passaggi chiari e pratici per diagnosticarli e risolverli rapidamente.
L'errore 502 Bad Gateway è uno dei problemi più comuni che si riscontrano quando si utilizza Nginx come reverse proxy. In sostanza, significa che Nginx ha ricevuto una risposta non valida dal server a monte (upstream), come PHP-FPM, Gunicorn o Node.js.
Cause comuni
- Il servizio a monte è inattivo: Il processo che dovrebbe gestire la richiesta non è in esecuzione.
- Configurazione errata del proxy: Nginx sta cercando di connettersi a un socket o a una porta sbagliata.
- Timeout: Il server a monte impiega troppo tempo per rispondere.
- Limiti di risorse: Il server ha esaurito la memoria o i descrittori di file.
Passaggi per la risoluzione dei problemi
1. Controlla lo stato del servizio a monte
Assicurati che il tuo backend sia attivo. Ad esempio, se usi PHP-FPM:
sudo systemctl status php8.2-fpm
2. Esamina i log di errore di Nginx
I log sono i tuoi migliori alleati. Controlla il file di log degli errori per vedere esattamente cosa sta succedendo:
sudo tail -f /var/log/nginx/error.log
3. Verifica la configurazione del proxy
Controlla il tuo file di configurazione di Nginx (/etc/nginx/sites-available/default) e assicurati che la direttiva fastcgi_pass o proxy_pass punti al socket o alla porta corretti.
4. Aumenta i timeout
Se il tuo script richiede molto tempo per essere eseguito, potresti dover aumentare i timeout nel tuo blocco location:
proxy_read_timeout 300;
proxy_connect_timeout 300;
Dopo aver apportato le modifiche, non dimenticare di testare la configurazione e riavviare Nginx:
sudo nginx -t
sudo systemctl restart nginx