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

Detaillierte Erklärung der Rolle von Klammern in AngularJS

1. Die Rolle der Klammern 1.1 Eckige Klammern [ ]...

Der Fallstrickrekord des Gummi-Rebound-Effekts der iOS WeChat H5-Seite

Geschäftliche Anforderungen Eines der Projekte, d...

Eine kurze Diskussion darüber, ob CSS-Animationen durch JS blockiert werden

Der Animationsteil von CSS wird von JS blockiert,...

MySQL Serie 14 MySQL Hochverfügbarkeitsimplementierung

1. MHA Durch die Überwachung des Masterknotens ka...

Implementierung der Formatierung von Partitionen und der Einbindung in Centos7

Unter Linux treten häufig Situationen auf, in den...

Beispiel für die Einrichtung eines mehrspaltigen Layouts gleicher Höhe mit CSS

Mehrere Spalten haben zunächst unterschiedliche I...

IE6 implementiert min-width

Zunächst einmal wissen wir, dass dieser Effekt ei...

MySQL-Abfrageanweisung nach Zeit gruppiert

MySQL-Abfrage nach Jahr, Monat, Woche, Tagesgrupp...

jQuery implementiert einen einfachen Karusselleffekt

Hallo zusammen, heute werde ich die Implementieru...

Praxis der Linux-Datei- und Benutzerverwaltung

1. Zeigen Sie die Dateien oder Verzeichnisse im V...

Detaillierte Erläuterung der Vue-Projektverpackung

Inhaltsverzeichnis 1. Zugehörige Konfiguration Fa...