Ausführliche Erläuterung der Standortpriorität von Nginx

Ausführliche Erläuterung der Standortpriorität von Nginx

Standortausdruckstyp

~ bedeutet, dass ein regulärer Abgleich durchgeführt werden soll, Groß-/Kleinschreibung wird beachtet
~* bedeutet, dass ein regulärer Abgleich durchgeführt wird, bei dem die Groß-/Kleinschreibung nicht beachtet wird.
^~ bedeutet normale Zeichenübereinstimmung. Verwenden Sie Präfixübereinstimmung. Wenn die Übereinstimmung erfolgreich ist, wird keine Übereinstimmung mit anderen Standorten hergestellt.
= Führt eine exakte Übereinstimmung gemeinsamer Zeichen durch. Das heißt, eine exakte Übereinstimmung.
@ "@" definiert einen benannten Ort, der für internes Targeting verwendet wird, wie etwa error_page, try_files

Beschreibung der Standortpriorität

Die Reihenfolge der Standorte im Standort und in der Konfiguration von Nginx spielt keine große Rolle. Der Typ des Standortausdrucks. Bei Ausdrücken desselben Typs wird zuerst der Ausdruck mit der längeren Zeichenfolge gefunden.

Hier sind die Anweisungen in der Reihenfolge ihrer Priorität:

Erste Priorität: Der Gleichheitszeichentyp (=) hat die höchste Priorität. Sobald eine Übereinstimmung gefunden wurde, wird nicht nach weiteren Übereinstimmungen gesucht.
Zweite Priorität: Ausdrücke vom Typ ^~. Sobald eine Übereinstimmung gefunden wurde, wird nicht nach weiteren Übereinstimmungen gesucht.
Dritte Priorität: Der reguläre Ausdruckstyp (~ ~*) hat die zweithöchste Priorität. Wenn mehrere Standorte vorhanden sind, die dem regulären Ausdruck entsprechen, wird der Standort mit dem längsten regulären Ausdruck verwendet.
Vierte Priorität: regulärer String-Matching-Typ. Übereinstimmung nach Präfix.

Die Beispielkonfigurationselemente für die Standortpriorität lauten wie folgt:

Standort = / {
# Stimmt nur mit Anfragen überein /
[ Konfiguration A ]
}

Standort / {
# Stimmt mit allen Anfragen überein, die mit / beginnen. Wenn jedoch ein längerer Ausdruck desselben Typs vorhanden ist, wird der längere Ausdruck ausgewählt. Wenn ein regulärer Ausdruck vorhanden ist, der abgeglichen werden kann, wird mit # zuerst der reguläre Ausdruck abgeglichen.
[ Konfiguration B ]
}

Standort /Dokumente/ {
# Stimmt mit allen Anfragen überein, die mit /documents/ beginnen. Wenn jedoch ein längerer Ausdruck desselben Typs vorhanden ist, wird der längere Ausdruck ausgewählt.
#Wenn es einen regulären Ausdruck gibt, der abgeglichen werden kann, wird zuerst der reguläre Ausdruck abgeglichen.
[ Konfiguration C ]
}

Standort ^~ /images/ {
# Alle Ausdrücke abgleichen, die mit /images/ beginnen. Wenn die Übereinstimmung erfolgreich ist, beenden Sie die Suche und den Abgleich. Selbst wenn also ein passender regulärer Ausdruck vorhanden ist, wird dieser nicht verwendet [Konfiguration D].
}

Standort ~* \.(gif|jpg|jpeg)$ {
# Alle Anfragen, die mit gif, jpg und jpeg enden, passen zusammen. Anfragen, die mit /images/ beginnen, verwenden jedoch die Konfiguration D.
[ Konfiguration E ]
}

Beispiel für Anforderungsabgleich

/ -> Konfiguration A
/index.html -> Konfiguration B
/documents/document.html -> Konfiguration C
/images/1.gif -> Konfiguration D
/documents/1.jpg -> Konfiguration E

Beachten Sie, dass die obige Übereinstimmung nichts mit der Reihenfolge zu tun hat, in der sie in der Konfigurationsdatei definiert sind.

Zusammenfassen

Dies ist das Ende dieses Artikels über die Standortpriorität von Nginx. Weitere Informationen zur Standortpriorität von Nginx finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Priorität und Sicherheitsprobleme bei der Standortübereinstimmung der Nginx-Konfigurationsrichtlinie
  • Eine kurze Analyse der Übereinstimmungspriorität des Nginx-Konfigurationsspeicherorts

<<:  Implementierungsprozess von row_number in MySQL

>>:  Mehrere Lösungen für domänenübergreifende Gründe in der Webentwicklung

Artikel empfehlen

Lassen Sie IE6, IE7, IE8 CSS3-abgerundete Ecken und Schattenstile unterstützen

Ich möchte eine Seite mit CSS3-abgerundeten Ecken...

Zusammenfassung gängiger Fehler beim Entwurf von MySQL-Tabellen

Inhaltsverzeichnis Fehler 1: Zu viele Datenspalte...

Detaillierte Erläuterung der Persistenz des Vue-Seitenstatus

Inhaltsverzeichnis Code: Auffüllen: Zusammenfasse...

Bringen Sie Ihnen bei, wie Sie Hive3.1.2 auf Tencent Cloud erstellen

Umgebungsvorbereitung Stellen Sie vor dem Starten...

HTML-Tabellen-Tag-Tutorial (44): Tabellenkopfzeilen-Tag

<br />Um die Tabellenstruktur im Quellcode d...

So erhalten Sie den tatsächlichen Pfad des aktuellen Skripts in Linux

1. Holen Sie sich den tatsächlichen Pfad des aktu...

Detaillierte Einführung in die Chrome-Entwicklertools - Zeitleiste

1. Übersicht Benutzer erwarten, dass die Webanwen...

WeChat-Applet implementiert SMS-Login in Aktion

Inhaltsverzeichnis 1. Vorschau der Schnittstellen...