Risoluzione dell'errore interno del server NGINX 500 per client e server

Nginx (pronunciato Motore-X), un server web open source rilasciato pubblicamente nell'ottobre 2004, funge anche da bilanciatore di carico, proxy inverso e cache HTTP. La sua popolarità e utilità sono evidenti nella sua adozione da parte di importanti aziende tecnologiche come Microsoft, Google, Facebook, Twitter e Apple.

Nginx

Significato dell'errore interno del server 500 in Nginx

Come altre applicazioni software o server, Nginx può riscontrare errori, che il suo sistema di segnalazione errori integrato è in grado di identificare. Tuttavia, l'errore interno del server 500 è una situazione unica. Questo errore si verifica anche su vari server web, come Apache e IIS.

Errore interno del server Nginx 500

L'errore 500 è un codice di stato HTTP che indica un problema del server la cui causa principale non è chiaramente identificata. A differenza di altri codici di stato HTTP, come 403 (Vietato) o 404 (Non trovato), non fornisce alcun indizio sulla possibile causa.

Come correggere l'errore 500 in Nginx dal lato client?

Questo codice di errore indica un problema lato server che solitamente può essere risolto sul server stesso. Tuttavia, in rari casi, il browser potrebbe contribuire al problema creando una richiesta che il server non riesce a gestire.

Per verificare se il browser sta causando il problema, apri il sito web con un browser diverso, su un dispositivo diverso e su una rete diversa. Se funziona correttamente, cancella la cache/i dati del browser originale e assicurati che non ci siano estensioni del browser che causano il problema.

Se il sito web Nginx continua a visualizzare l'errore 500, contattare l'amministratore del server per risolvere il problema.

Come risolvere l'errore Nginx 500 sul lato server?

Questo errore può derivare da un semplice errore di sintassi o da un problema con l'applicazione backend. Poiché l'errore non rivela la causa principale, la risoluzione del problema può essere complessa. Tuttavia, non preoccupatevi, l'approccio sistematico che illustreremo di seguito può risolvere il problema.

1. Verificare il sovraccarico del server

Se il server è sovraccarico, potrebbe visualizzare un errore interno 500 a causa di risorse insufficienti per le attività essenziali. Controlla l'utilizzo della CPU, l'utilizzo della memoria e la disponibilità di spazio su disco utilizzando i comandi Free, Top o HTop. Lo screenshot seguente mostra l'output dopo l'esecuzione del comando top.

Verifica delle risorse del server

Se il server è sovraccarico, l'aggiunta di più risorse dovrebbe risolvere l'errore Nginx 500.

2. Controllo della sintassi della composizione

Il motivo più comune per un errore 500 in Nginx è un'impostazione del server non corretta dovuta a un errore di sintassi di configurazione.

Per risolvere questo problema, rivedere i file di configurazione di Nginx e controllare attentamente la sintassi per individuare eventuali errori o direttive fuori posto.

Successivamente, controlla i file di configurazione di Nginx per individuare eventuali errori di sintassi o direttive fuori posto. Utilizza comandi come `nginx -t` o `nginx -t -c /path/to/nginx.conf` per controllare la sintassi e identificare eventuali errori. Esegui i seguenti comandi nel terminale per rilevare eventuali errori:

cd /etc/nginx/sites-available nginx -t

Controllo della sintassi della composizione

Puoi anche usare quanto segue:

nginx -t -c /percorso/verso/nginx.conf

Se vengono rilevati errori di sintassi, correggili e procedi come segue per riavviare/ricaricare Nginx:

sudo service nginx restart nginx -s reload

In alcuni casi potrebbe essere necessario modificare il file di configurazione come mostrato di seguito:

try_files con try_files $uri =404

أو

prova_file $uri $uri/ /index.html; con prova_file $uri/ $uri /index.php?$query_string;

3. Controllo dei log del server

Quando Nginx genera un errore 500, crea anche una voce nel registro errori interno, che può indicare la causa principale dell'errore. I registri del server si trovano in genere in:

/var/log/nginx/error.log

Su una distribuzione Linux, procedere come segue per aprire il registro del server:

cd /var/log/nginx cat error.log

Nella pagina risultante, è possibile esaminare tutti gli indicatori della causa principale. Ad esempio, vedere l'immagine qui sotto:

Controllo dei log del server

Questo indica che il server non è riuscito a stabilire una connessione SSL/TLS con il client a causa di un problema con il certificato SSL. Dopo aver identificato il problema nei log, è possibile cercare possibili cause e soluzioni online.

Se non riesci ad aprire il registro a causa di un errore di "autorizzazione negata" per la cartella, modifica il file Nginx.conf sostituendo "user www-data" con "user root". Dopo aver salvato il file, riavvia Nginx e prova ad aprire nuovamente il registro.

4. Disattivare temporaneamente Cloudflare o servizi simili

Se stai utilizzando Cloudflare o un servizio simile sul tuo server e questo non è configurato correttamente o è in conflitto con gli aggiornamenti recenti, disattivarlo temporaneamente può aiutarti a diagnosticare il problema.

  1. Vai a Pannello di controllo Cloudflare Accedi con le tue credenziali.
  2. Vai a Panoramica (Panoramica) ed espandere Filtri (Impostazioni avanzate).
  3. Clicca su Metti in pausa il sito web (Metti in pausa il sito) e conferma. Se il tuo provider di hosting ha integrazioni con Cloudflare, assicurati di disattivarle.
  4. Assicuratevi di avere gli indirizzi IP corretti per il sito e verificate che l'errore interno del server Nginx 500 sia stato risolto. Ricordatevi di controllare sia la versione HTTP che HTTPS del sito. Disabilita CloudFlare sul sito web

5. Verificare i certificati del server

Se uno qualsiasi dei tuoi certificati è scaduto o non è più valido nelle impostazioni correnti, ciò causerà sicuramente un errore sul server interno.

  1. Configurare Nginx per l'utilizzo IP Per il tuo sito web, non per il nome di dominio. Utilizzare l'indirizzo IP del server nelle impostazioni Nginx
  2. Disabilitare Verifica SSL In proxy_pass, aggiungi il certificato autofirmato. Puoi crearne uno nella dashboard di Cloudflare (SSL > Certificati client).
  3. Verificare che il server funzioni correttamente. In tal caso, contattare l'autorità di certificazione o verificare le impostazioni per eventuali configurazioni errate del certificato.

6. Verificare la presenza di eventuali errori nelle applicazioni backend

Se Nginx reindirizza le richieste del client a un altro servizio che non riesce a funzionare correttamente, si verifica un errore 500. Ad esempio, se il server reindirizza le richieste del client a un'applicazione backend come NodeJS e l'applicazione non funziona correttamente, si verifica l'errore sopra menzionato.

Ricorda che se i registri del server non mostrano errori, di solito ciò indica un problema nel backend.

Per risolvere questo problema, controlla i log dell'applicazione backend per eventuali errori o eccezioni. Ad esempio, in WordPress, troverai i log di NodeJS nel seguente percorso:

/var/www/ .com/logs/error.log

7. Permessi file insufficienti

Se il server Nginx non dispone delle autorizzazioni necessarie per accedere o eseguire un file, verrà generato un errore 500. Ad esempio, si verificherà un errore interno del server su un sito WordPress se il server Nginx non riesce ad accedere o a servire file PHP o HTML dalla cartella public_html.

Per correggere questo problema, puoi modificare le autorizzazioni Nginx necessarie sui file o sulle directory a cui il server accede utilizzando il comando chmodDi solito è 755 per le directory e 644 per i file.

8. Verifica della compatibilità dei componenti aggiuntivi

I plugin svolgono un ruolo cruciale nel migliorare le funzionalità del server. Tuttavia, i plugin che non funzionano correttamente, sono obsoleti o sono eccessivamente aggiornati possono causare errori interni al server. Ad esempio, un aggiornamento di WordPress può compromettere la funzionalità del tuo sito perché molti plugin diventano incompatibili finché non vengono aggiornati.

Per risolvere questo problema, assicurati che ogni aggiunta Compatibile Con il software del server e altri componenti aggiuntivi. Anche se potrebbe sembrare noioso, ne vale la pena. In alternativa, prova a disabilitare tutti i componenti aggiuntivi per vedere se l'errore si risolve.

Se hai aggiornato di recente il software del tuo server, prova Ritorno Ripristinare la versione precedente (se possibile) per verificare se l'errore è stato risolto. Questo confermerà se l'aggiornamento era la causa del problema. È possibile ritardare l'aggiornamento software finché tutti i componenti aggiuntivi non saranno compatibili.

9. Controllare gli script difettosi

Come i plugin, gli script sono essenziali per alcune funzioni del sito web. Uno script corrotto, obsoleto o incompatibile può causare un errore interno del server.

Puoi risolvere questo problema con Disabilitazione degli script Controlla il server Nginx. Se funziona correttamente, controlla gli script e prova a identificare quelli che causano il problema.

10. Aumentare il valore di timeout del server

Se il valore di timeout del server è inferiore al tempo di risposta di Nginx, si verificherà un errore interno del server. Analogamente, se la richiesta del server richiede più tempo del tempo di risposta di Nginx, si verificherà il problema.

Aumentare il valore di timeout del server dovrebbe risolvere il problema. Puoi trovare istruzioni specifiche online.

11. Assicurarsi che tutti i processi di reindirizzamento funzionino.

Assicurarsi che tutti i processi di reindirizzamento funzionino correttamente quando Nginx funge da server proxy. Se il server non è in grado di reindirizzare la richiesta del client al server back-end, si verificherà un errore 500.

Disattiva temporaneamente tutti i reindirizzamenti Per verificare il corretto funzionamento, in caso di successo, riavviare ogni processo singolarmente per identificare il reindirizzamento errato. Una volta identificato, cercare online possibili cause e soluzioni per questo specifico errore di reindirizzamento.

12. Utilizzo di PHP con Nginx

Nginx non supporta nativamente PHP; pertanto, configurazioni PHP errate con Nginx possono causare un errore interno del server.

Per risolvere questo problema, verifica l'integrazione di PHP con Nginx. Se la visualizzazione degli errori PHP è disabilitata, il server restituirà un errore Nginx 500 quando PHP riscontra un problema. Abilitare la visualizzazione degli errori PHP può semplificare la risoluzione dei problemi.

Su CentOS 7, procedi come segue:

tail -f /var/log/php-fpm/www-error.log

Invece, vai a

/etc/php.ini

E cambia

display_errors = Spento

per me

display_errors = Attivo

Puoi anche cercare un processore PHP migliore (come PHP-FPM) e abilitare la memorizzazione nella cache di Nginx.

13. Adottare un approccio minimalista.

Se non riesci ancora a risolvere l'errore 500, puoi utilizzare l'approccio minimalista per risolvere il problema.

  1. creato Backup Dal tuo sito e sostituisci il contenuto del sito con un semplice file index.html contenente del testo normale.
  2. Controlla se il sito Lavori Inizia ad aggiungere indicazioni, funzionalità, servizi, plugin, script, ecc., uno alla volta.
  3. Assicurati di testare il sito dopo ogni passaggio e di verificare se il problema si ripresenta.
  4. Restituisci il contenuto al tuo sito e verifica se è la causa del problema.
  5. Una volta individuato l'elemento che causa il problema, è possibile risolverlo effettuando una ricerca su Internet.

Come evitare che l'errore del server Nginx 500 si ripeta in futuro

Per evitare che l'errore Nginx 500 si ripeta, è possibile seguire i seguenti passaggi:

  • Eseguire la manutenzione regolare del server.
  • Assicurati che il codice e i contenuti del sito (immagini, video, ecc.) siano ottimizzati per le tue impostazioni.
  • Creare una rete per la distribuzione di contenuti (CDN) per servire il sito tramite la sua cache.

Per qualsiasi domanda, siamo a vostra disposizione nella sezione commenti.

I commenti sono chiusi.