GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Grundlegende Nginx-Fehlerbehebung

Grundlegende Nginx-Fehlerbehebung

Dieser Artikel zeigt einige grundlegende Fehlerbehebungen für Nginx, einen der beliebtesten HTTP-Server. Der Zweck besteht darin, einige der häufigsten Fehler zu beheben, die möglicherweise in Ihrer Nginx-Konfiguration vorhanden sind.

Nach Syntaxfehlern oder Warnungen in der Konfiguration suchen

Mit einem einfachen Befehl können Sie den Status der Nginx-Konfigurationsdatei überprüfen:$ sudo systemctl config nginx Die Ausgabe zeigt, ob die Konfigurationsdatei korrekt ist, oder zeigt die Datei und die Zeile, in der das Problem liegt, falls dies nicht der Fall ist.

$ 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

Falls Sie den Service-Befehl in Ihrem System nicht zur Verfügung haben, können Sie sich für die Verwendung des -t entscheiden Nginx-Parameter, der auch die Konfigurationsdatei auf korrekte Syntax testet und dann versucht, die Dateien zu öffnen, auf die in der Konfiguration verwiesen wird.$ sudo nginx -t

Überprüfen Sie, ob Nginx ausgeführt wird

Um den Status des Nginx-Dienstes zu überprüfen, können Sie den folgenden Befehl verwenden:$ sudo systemctl status nginx Sie können auch die generischen Befehle verwenden, um den Status des Dienstes zu validieren:$ sudo /etc/init.d/nginx status

Stellen Sie sicher, dass die Ports offen sind und der Dienst lauscht

Stellen Sie sicher, dass die erforderlichen Ports geöffnet sind, und um zu überprüfen, ob der Nginx-Dienst sie abhört, können Sie den lsof verwenden Befehl, idealerweise in den Standardports 80 und 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)

Überprüfen Sie, ob Nginx Anfragen verarbeitet

Wenn Nginx tatsächlich auf die entsprechenden Ports lauscht, besteht der nächste Schritt darin, zu prüfen, ob es Anfragen verarbeitet, was mit curl erfolgen kann Tool, indem Sie die IP, URL oder localhost verwenden, wenn Ihr Setup auf localhost lauscht:

$ 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

Überprüfen Sie die Protokolle

Überprüfen Sie die letzten Protokolle des Nginx-Dienstes.$ sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log

Berechtigungen prüfen

Stellen Sie sicher, dass Nginx über die entsprechenden Berechtigungen für den Zugriff auf die benötigten Dateien verfügt.

$ 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

Laden Sie den Dienst neu

Falls Sie Änderungen an der Konfigurationsdatei vorgenommen haben, die nicht angewendet wurden, können Sie den Dienst neu laden, neue Nginx-Prozesse starten und die alten Worker sanft herunterfahren, um ein schnelles und aggressives Herunterfahren zu vermeiden.$ sudo service nginx reload Für das schnelle Herunterfahren, das nicht auf das Beenden von Prozessen wartet, können Sie Nginx neu starten.$ sudo service nginx restart

Debug-Modus aktivieren

In der Konfigurationsdatei (normalerweise /etc/nginx/nginx.conf ) ändern Sie die Protokollebene für das error_log Direktive:

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

Sie können Umschreibungsregeln debuggen, um die Verarbeitungsergebnisse im Fehlerprotokoll anzuzeigen:

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

Überprüfen Sie die DNS-Auflösung

Regeln auf /etc/hosts haben Vorrang vor DNS-Auflösungen. Sie können die DNS-Einträge überprüfen mit:$ host -t A website.com Sie können auch die vollständige DNS-Auflösung überprüfen:$ dig +trace website.com

Schlussfolgerungen

Dies sind einige grundlegende Schritte zur Fehlerbehebung für einige der häufigsten Fehler mit Nginx. Sie können sich auch auf die Dokumentation verlassen, wenn diese Schritte Ihr Problem nicht beheben, und sich die große Beliebtheit von Nginx zunutze machen.


Linux
  1. 5 Linux-Befehle zur Fehlerbehebung im Netzwerk

  2. Fehlerbehebung bei Cron-Jobs

  3. Grundlegende Fehlerbehebung für Anwendungspools

  4. Grundlegende Nginx-Fehlerbehebung

  5. Installieren Sie Nginx auf Fedora

Einfache HTTP-Authentifizierung mit Nginx

So aktivieren Sie TLS 1.3 in Nginx

SELinux Fehlerbehebung und Fallstricke

Wie aktiviere ich IPv6 in Nginx?

Installieren Sie Nginx auf Ubuntu 18.04

Gewusst wie:Grundlegende IPTables-Fehlerbehebung