Nginx-Serverblöcke und location-Regeln untersuchen

Fügen Sie eine Konfiguration zur Prüfung ein und testen Sie einen Pfad gegen die location-Regeln. Der Abgleich folgt der Reihenfolge von Nginx: exakte Übereinstimmung, längstes Präfix, dann reguläre Ausdrücke; der Pfad wird wie in Nginx normalisiert.

Läuft lokal in deinem Browser
Dieses Werkzeug verarbeitet alle Daten lokal in deinem Browser.
Nginx-KonfigurationFügen Sie einen oder mehrere Server-Blöcke ein; kein Host wird kontaktiert.

So prüfen Sie einen Nginx-Block und einen Anfragepfad

Nginx entscheidet in fester Reihenfolge, welche location einen Aufruf bedient: zuerst die exakte Übereinstimmung mit =, dann das längste passende Präfix und zuletzt die regulären Ausdrücke in ihrer Schreibreihenfolge. Der Abgleich folgt dieser Reihenfolge und normalisiert den Pfad wie Nginx, das Ergebnis ist also die Regel, die Nginx verwenden würde.

Der Bericht bleibt eine Prüfhilfe. Er liest nur den eingefügten Text, und nginx -t auf dem Server, der die Seite ausliefert, bleibt maßgeblich dafür, ob die Datei lädt.

  1. Fügen Sie einen oder mehrere server-Blöcke ein, oder laden Sie mit Beispiel laden eine funktionierende Konfiguration.
  2. Drücken Sie Konfiguration prüfen und lesen Sie den Bericht; die Auswertung bleibt in diesem Browser.
  3. Geben Sie einen Pfad wie /api/projects/42 ein und drücken Sie Location finden, um zu sehen, welche Regel greift und warum.
  4. Ändern Sie den Block, prüfen Sie erneut und bestätigen Sie die Datei mit nginx -t, bevor Sie den Server neu laden.

location-Reihenfolge, Anführungszeichen und Pfadvorschau

Wie Nginx eine location auswählt

Eine exakte Übereinstimmung wie location = /health gewinnt sofort. Sonst wird das längste passende Präfix gemerkt; trägt dieses Präfix ^~, werden die regulären Ausdrücke übersprungen und das Präfix bedient die Anfrage.

Ohne ^~ werden die regulären Ausdrücke in ihrer Schreibreihenfolge geprüft, der erste Treffer gewinnt; passt keiner, bedient das gemerkte Präfix die Anfrage. Verschachtelte locations innerhalb eines passenden Präfixes werden genauso gesucht, deshalb kann ein verschachteltes ^~ oder ein verschachtelter regulärer Ausdruck eine weiter unten notierte Regel überholen.

Was der Bericht prüft

Der Bericht meldet unausgeglichene Klammern oder Anführungszeichen, einen fehlenden server-Block, ein fehlendes server_name, einen Listener auf Port 80 ohne erkennbare return 30x-Weiterleitung, proxy_pass ohne proxy_set_header Host und proxy_pass ohne X-Forwarded-For oder X-Forwarded-Proto. Port 80 wird in den Formen 80, *:80, 0.0.0.0:80 und [::]:80 erkannt.

Er meldet außerdem location-Muster mit Klammern ohne Anführungszeichen: Nginx lädt eine Datei wie location ~ ^/p/[0-9]{3}$ { } nicht und bricht mit unknown directive ab. Bestehen alle Prüfungen, sagt der Bericht das, statt einen Befund zu erfinden.

Anführungszeichen, Escapes und die Pfadvorschau

Setzen Sie einen regulären Ausdruck mit Klammern in Anführungszeichen: location ~ "^/p/[0-9]{3}$" { } lädt, die Form ohne Anführungszeichen nicht. Die Vorschau dekodiert Prozent-Escapes, fasst doppelte Schrägstriche zusammen und löst . und .. auf, daher erreichen /a//b, /a/./b und /a/x/../b alle location = /a/b.

Der Vergleich unterscheidet Groß- und Kleinschreibung, außer bei Regeln mit ~*. Benannte locations (location @name) werden aufgelistet, aber nie aus einem Pfad ausgewählt, und Direktiven wie rewrite, try_files und error_page werden nicht verfolgt; lesen Sie das Ergebnis als den ersten Routing-Schritt von Nginx.

Zuletzt verwendet: