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
- Der Dienst läuft nicht: Der Upstream-Server (z. B. PHP-FPM, Node.js, Python) ist abgestürzt oder wurde nicht gestartet.
- Falscher Port oder Host: Nginx versucht, eine Verbindung zu einem Port herzustellen, auf dem der Dienst nicht lauscht.
- Firewall-Beschränkungen: Lokale Firewalls (wie
iptablesoderufw) 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.