Wenn wir einen Nginx-Webserver installieren, um unter anderem Webseiten über das Internet bereitzustellen, gibt unser Server über den von uns verwendeten Internet-Browser im besten Fall die geplante Webseite aus. Haben wir bei der Installation oder Konfiguration von Nginx jedoch einen Schritt vergessen oder etwas während der Einrichtung übersehen, wird eventuell nicht der gewünschte Webinhalt ausgegeben, sondern ein Statuscode mit der Zahl 403.
In diesem Beitrag gehe ich auf mögliche Ursachen für diese Anzeige ein und wie du das Problem schnell und zielführend beheben kannst.
Inhaltsverzeichnis: Nginx 403 Forbidden Ausgabe Ursachen und Behebung
Beispielszenario:
Versuchst du gerade auf deinen Webserver über den Browser zuzugreifen und erhältst die folgende Meldung:
403 Forbidden
You dont have Permission to access / on this Server
Dann hat diese Meldung nicht nur negative Botschaften. Was du hier erhältst, ist ein Statuscode vom Server. Was so viel heißt, dass dein Server definitiv erreichbar ist und die Kommunikation funktioniert. Das ist so weit eine gute Nachricht. Der Webserver ist demnach in der Lage, deinem Client eine Antwort zu senden.
Jeder Statuscode, in diesem Fall erhältst du die Meldung 403 Forbidden zurück, wird über einen HTTP-Header vom Server an deinem Browser übermittelt. Da es unterschiedliche Rückmeldungen von Servern über solche Statuscodes gibt, können wir das Problem hierbei relativ schnell diagnostizieren. Eben genau dafür dienen diese Übermittlungen mit Zahlencodes.
Was sagt uns nun die Antwort mit dem Statuscode 403 von unserem Nginx Webserver?
Der Server weiß auf welchen Inhalt du gerade zugreifen möchtest, ist jedoch nicht berechtigt dazu, dir diesen Webinhalt zur Verfügung zu stellen. Das kann verschiedene Ursachen haben. Es kann hilfreich sein, die Serverprotokolle für die erweiterte Problemidentifizierung auszulesen.
Im nächsten Abschnitt gehe ich auf die häufigsten serverseitigen Probleme im Zusammenhang mit einem Nginx-Webserver und der Ausgabe (403) ein. Häufig löst du, dass Problem schon, wenn du beide Ursachen kontrollierst und gegebenenfalls die Lösungsvorschläge von mir durchführst.
Häufige Ursache 1: Index-Dateien befinden sich nicht im richtigen Verzeichnis oder sind falsch lokalisiert
Sehr häufig kommt es vor, dass Nginx uns den Statuscode 403-Forbidden anzeigt, weil die Konfigurationsdatei von deinem Nginx-Webserver nicht richtig konfiguriert worden ist. Die Datei liegt im folgenden Verzeichnis:
/etc/nginx/nginx.conf
Kontrolliere, ob die Index-Dateien wie angegeben angeordnet sind und auf deinem Server existieren. Befinden sich die Index-Dateien nicht in dem angegebenen Verzeichnis, können diese selbsterklärend auch nicht korrekt geladen werden. Häufig wird der Fehler schon hier ausfindig gemacht.
Location / {
index index.html index.htm;
}
Weitere Informationen über die Konfiguration von Nginx kannst du den offiziellen Dokumenten entnehmen: https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/
Häufige Ursache 2: Berechtigungen wurden nicht erteilt, sodass kein Zugriff genehmigt werden kann
Der Nginx-Fehler mit dem Statuscode 403-Forbidden kann auch daraus resultieren, weil nach der Installation keine Berechtigungen auf die Verzeichnisse und Dateien gesetzt worden sind. Diese sind notwendig, damit Nginx den Inhalt (Daten und Ressourcen) für Browser anfragen bereitstellen kann. Es werden hierfür Schreib-, Lese- und Berechtigungen zum Ausführen für das Verzeichnis benötigt.
Die Berechtigungen kannst du mit diesen Befehlen für die Verzeichnisse vergeben:
sudo chown -R www-data /Webverzeichnis
sudo chmod -R 0755 /Webverzeichnis
Häufige Ursache 2: Berechtigungen wurden nicht erteilt, sodass kein Zugriff genehmigt werden kann
Hast du beide Ursachen überprüft und die Berechtigungen eingetragen, kannst du deinen Nginx Server zur Sicherheit noch einmal neu starten und den Zugriff über den Browser erneut versuchen.
Starte deinen Webserver mit diesem Befehl einmal neu:
sudo systemctl reload nginx
Falls du bei dem Aufruf deiner Webseite auf deinem Nginx-Webserver nach der serverseitigen Problemlösung noch immer die Ausgabe erhältst:
403 Forbidden
You dont have Permission to access / on this Server
Tipps zur Problemlösung auf dem Client:
- Stelle sicher, dass kein Schreibfehler bzw. Zahlendreher in der URL-Adresse / IP-Adresse vorliegt.
- Lösche den Browsercache bevor du die Webseite wieder aufrufst, um auch wirklich auf den Server und nicht nur auf deinen Zwischenspeicher (Cache) zuzugreifen.
- Verwendest du eine Firewall oder einen Proxy, stelle unbedingt sicher, dass der Zugriff über diese Ports auf die Webressource zulässig ist.