Analyse von Nginx-Fehlerprotokollen zur Fehlerbehebung bei „Connection Refused“

Erfahren Sie die Best Practices zur Interpretation von Nginx-Fehlerprotokollen, um die Ursache von „Connection Refused“-Problemen zu finden, einschließlich Socket-Einstellungen und Upstream-Server-Prüfungen.

Wenn Sie in Ihren Nginx-Fehlerprotokollen die Meldung connect() failed (111: Connection refused) sehen, bedeutet dies, dass Nginx versucht hat, eine Verbindung zu einem Upstream-Server herzustellen, dieser die Verbindung jedoch aktiv abgelehnt hat.

Häufige Ursachen

  1. Der Dienst läuft nicht: Der Upstream-Server (z. B. PHP-FPM, Node.js, Python) ist abgestürzt oder wurde nicht gestartet.
  2. Falscher Port oder Host: Nginx versucht, eine Verbindung zu einem Port herzustellen, auf dem der Dienst nicht lauscht.
  3. Firewall-Beschränkungen: Lokale Firewalls (wie iptables oder ufw) blockieren die Kommunikation zwischen Nginx und dem Upstream-Dienst.

Schritte zur Fehlerbehebung

1. Überprüfen Sie den Status des Upstream-Dienstes

Stellen Sie sicher, dass der Dienst aktiv ist:

systemctl status php-fpm

2. Prüfen Sie die Socket-Konfiguration

Wenn Sie Unix-Sockets verwenden, stellen Sie sicher, dass die Pfade in Ihrer Nginx-Konfiguration und der Konfiguration des Upstream-Dienstes übereinstimmen:

# Nginx upstream block
upstream backend {
    server unix:/var/run/php/php7.4-fpm.sock;
}

3. Testen Sie die Netzwerkverbindung

Verwenden Sie netstat oder ss, um zu bestätigen, dass der Dienst tatsächlich auf dem erwarteten Port oder Socket lauscht:

ss -tulpn | grep LISTEN

Durch die systematische Überprüfung dieser Ebenen können Sie die Ursache für „Connection Refused“-Fehler schnell eingrenzen und beheben.