GNU/Linux >> Linux Esercitazione >  >> Linux

Risoluzione dei problemi di base di Nginx

Risoluzione dei problemi di base di Nginx

Questo articolo mostra alcuni problemi di base per la risoluzione dei problemi per Nginx, uno dei server HTTP più popolari. Lo scopo è correggere alcuni degli errori più comuni che potrebbero essere presenti nella configurazione di Nginx.

Cerca errori di sintassi o avvisi nella configurazione

Tramite un semplice comando è possibile verificare lo stato del file di configurazione di Nginx:$ sudo systemctl config nginx L'output mostrerà se il file di configurazione è corretto o, in caso contrario, mostrerà il file e la riga in cui si trova il problema.

$ sudo systemctl config nginx
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl config nginx
"worker_connections" directive is not allowed here in /etc/nginx/nginx.conf:12
nginx: configuration file /etc/nginx/nginx.conf test failed

Nel caso in cui non disponi del comando di servizio disponibile nel tuo sistema, puoi scegliere di utilizzare il -t parametro Nginx, che verifica anche la sintassi corretta del file di configurazione e quindi tenta di aprire i file a cui si fa riferimento nella configurazione.$ sudo nginx -t

Verifica che Nginx sia in esecuzione

Per controllare lo stato del servizio Nginx puoi usare il seguente comando:$ sudo systemctl status nginx Puoi anche utilizzare i comandi generici per convalidare lo stato del servizio:$ sudo /etc/init.d/nginx status

Verifica che le porte siano aperte e che il servizio sia in ascolto

Verifica che le porte necessarie siano aperte e per verificare che il servizio Nginx sia in ascolto attraverso di esse puoi utilizzare lsof comando, idealmente nelle porte predefinite 80 e 443.

$ sudo lsof -i :80 -s TCP:LISTEN
nginx   1305 nginx    6u  IPv4 1613873      0t0  TCP *:http (LISTEN)
nginx   1305 nginx    7u  IPv6 1613874      0t0  TCP *:http (LISTEN)
nginx   1306 nginx    6u  IPv4 1613873      0t0  TCP *:http (LISTEN)
nginx   1306 nginx    7u  IPv6 1613874      0t0  TCP *:http (LISTEN)

Verifica se Nginx elabora le richieste

Se Nginx sta effettivamente ascoltando le porte appropriate, il passaggio successivo è verificare se sta elaborando le richieste, che possono essere effettuate utilizzando il curl strumento utilizzando l'IP, l'URL o localhost se la configurazione è in ascolto su localhost:

$ curl -i http://127.0.0.1/nginx_status
HTTP/1.1 200 OK
Server: nginx/1.11.1
Date: Wed, 08 Aug 2021 11:36:43 GMT
Content-Type: text/plain
Content-Length: 97
Connection: keep-alive

Active connections: 1
server accepts handled requests
3 3 3
Reading: 0 Writing: 1 Waiting: 0

Controlla i log

Controlla gli ultimi log del servizio Nginx.$ sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log

Controlla i permessi

Assicurati che Nginx disponga delle autorizzazioni appropriate per accedere ai file necessari.

$ namei -om /usr/share/nginx/html/index.html
f: /usr/share/nginx/html/index.html
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxr-xr-x root root share
drwxr-xr-x root root nginx
drwxr-xr-x root root html
-rw-r--r-- root root index.html

Ricarica il servizio

Nel caso in cui tu abbia apportato modifiche al file di configurazione che non sono state applicate, puoi ricaricare il servizio, avviando nuovi processi Nginx e spegnendo delicatamente i vecchi worker per evitare uno spegnimento rapido e aggressivo.$ sudo service nginx reload Per lo spegnimento rapido che non attende la fine dei processi, puoi riavviare Nginx.$ sudo service nginx restart

Abilita la modalità de debug

Nel file di configurazione (di solito /etc/nginx/nginx.conf ) cambia il livello di log per il error_log direttiva:

server {
# stuff
error_log /var/logs/nginx/error.log debug;
# stuff
}

Puoi eseguire il debug delle regole di riscrittura per vedere i risultati dell'elaborazione nel registro degli errori:

server {
# stuff
error_log /var/logs/nginx/error.log notice;
rewrite_log on;
# stuff
}

Verifica la risoluzione DNS

Regole su /etc/hosts avere la priorità sulle risoluzioni DNS. Puoi verificare i record DNS con:$ host -t A website.com Puoi anche controllare la risoluzione DNS completa:$ dig +trace website.com

Conclusioni

Questi sono alcuni passaggi di base per la risoluzione dei problemi per alcuni degli errori più comuni con Nginx. Puoi anche fare affidamento sulla documentazione se questi passaggi non risolvono il tuo problema, sfruttando la grande popolarità di Nginx.


Linux
  1. Risoluzione dei problemi hardware in Linux

  2. Come utilizzare Nginx per reindirizzare

  3. Installa Nginx su Fedora

  4. Installa Nginx su Ubuntu

  5. getpwnam(www) non è riuscito in /etc/nginx/nginx.conf

Autenticazione HTTP di base con Nginx

Come abilitare TLS 1.3 in Nginx

Risoluzione dei problemi e insidie ​​di SELinux

Come abilitare IPv6 in Nginx?

Installa Nginx su Ubuntu 18.04

Procedura:Risoluzione dei problemi di base di IPtables