Cloud-Lösungen der Zukunft - Testen!

Revolutionäre Cloud-Technologie, ganz ohne versteckte Kosten. Profitieren Sie von unserer Testphase und entdecken Sie umfassende Funktionen. Der Anmeldeprozess ist transparent und unkompliziert. Starten Sie jetzt Ihre Reise in die Cloud - Kostenfrei!

Nginx location directive Beispiele

Die Location Directive innerhalb eines NGINX Server Blocks ermöglicht es, Anfragen zur richtigen Stelle im Dateisystem zu routen. Die Directive wird verwendet, um NGINX mitzuteilen, wo nach einer Ressource gesucht werden soll, indem Dateien und Ordner einbezogen werden, während ein Location Block gegen eine URL abgeglichen wird. In diesem Tutorial werden wir die NGINX Location Directives im Detail betrachten.

Syntax

Der NGINX Location Block kann innerhalb eines Server Blocks oder innerhalb eines anderen Location Blocks mit einigen Einschränkungen platziert werden. Die Syntax zum Erstellen eines Location Blocks lautet:

location [modifier] [URI] {
  ...
}

Der Modifier im Location Block ist optional. Das Vorhandensein eines Modifiers im Location Block ermöglicht es NGINX, eine URL anders zu behandeln. Einige der häufigsten Modifiers sind:

  • none: Wenn keine Modifier in einem Location Block vorhanden sind, wird die angeforderte URI mit dem Anfang der angeforderten URI abgeglichen.
  • =: Das Gleichheitszeichen wird verwendet, um einen Location Block genau gegen eine angeforderte URI abzugleichen.
  • ~: Das Tilde-Zeichen wird für einen case-sensitive regulären Ausdrucksmatch gegen eine angeforderte URI verwendet.
  • ~*: Das Tilde gefolgt von einem Sternchen wird für einen case-insensitive regulären Ausdrucksmatch gegen eine angeforderte URI verwendet.
  • ^~: Das Dach gefolgt von einer Tilde wird verwendet, um den längsten nicht-regulären Ausdrucksmatch gegen eine angeforderte URI durchzuführen. Wenn die angeforderte URI einen solchen Location Block trifft, findet keine weitere Abgleichung statt.

Wie NGINX einen Location Block auswählt

Ein Location kann durch Verwendung eines Präfix-Strings oder durch Verwendung eines regulären Ausdrucks definiert werden. Case-insensitive reguläre Ausdrücke werden mit dem vorausgehenden Modifier „~*“ angegeben und für einen case-sensitive regulären Ausdruck wird der Modifier „~“ verwendet. Um einen Location-Match für eine URI zu finden, scannt NGINX zuerst die Locations, die mit Präfix-Strings definiert wurden (ohne regulären Ausdruck). Danach werden die Locations mit regulären Ausdrücken in der Reihenfolge ihrer Deklaration in der Konfigurationsdatei überprüft. NGINX durchläuft die folgenden Schritte, um einen Location Block gegen eine angeforderte URI auszuwählen.

  1. NGINX beginnt mit der Suche nach einem exakten Match, das mit location = /some/path/ angegeben ist, und wenn ein Match gefunden wird, wird dieser Block sofort bedient.
  2. Wenn es keine solchen exakten Location Blocks gibt, fährt NGINX mit dem Abgleichen der längsten nicht-exakten Präfixe fort und wenn ein Match gefunden wird, bei dem der Modifier ^~ verwendet wurde, stoppt NGINX die weitere Suche und dieser Location Block wird ausgewählt, um die Anfrage zu bedienen.
  3. Wenn der abgeglichene längste Präfix-Location keinen ^~ Modifier enthält, wird das Match vorübergehend gespeichert und mit den folgenden Schritten fortgefahren.
  4. NGINX verschiebt nun die Suche auf den Location Block, der die Modifier ~ und ~* enthält, und wählt den ersten Location Block, der mit der angeforderten URI übereinstimmt, und wird sofort ausgewählt, um die Anfrage zu bedienen.
  5. Wenn in dem obigen Schritt keine Locations gefunden werden, die mit der angeforderten URI übereinstimmen, wird der zuvor gespeicherte Präfix-Location verwendet, um die Anfrage zu bedienen.

Beispiele für NGINX Location Blocks

Lassen Sie uns einige Beispiele für NGINX Location Blocks unter Verwendung von Modifier und URI auflisten.

1. NGINX Location, die alle Anfragen abgleicht

Im folgenden Beispiel wird der Präfix-Location / alle Anfragen abgleichen, aber als letztes Mittel verwendet, wenn keine Übereinstimmungen gefunden werden.

2. NGINX Location, die exakte URL abgleicht

NGINX versucht immer zuerst, die spezifischste Präfix-Location abzugleichen. Daher erzwingt das Gleichheitszeichen im folgenden Location Block einen exakten Match mit dem angeforderten Pfad und stoppt dann die Suche nach weiteren Übereinstimmungen.

location = /images { 
    ...
}

3. NGINX Location Block für ein Verzeichnis

Der folgende Location Block wird jede Anfrage abgleichen, die mit /images/ beginnt, sucht aber weiter nach einem spezifischeren Block für die angeforderte URI. Daher wird der Location Block ausgewählt, wenn NGINX keine spezifischere Übereinstimmung findet.

location /images/ {
     ...
     ...
}

4. RegEx Beispiel

Der Modifier ^~ im folgenden Location Block führt zu einem case-sensitive regulären Ausdrucksmatch. Daher werden die URI /images oder /images/logo.png abgeglichen, aber die Suche wird gestoppt, sobald ein Match gefunden wird.

location ^~ /images {
   ...
   ...
}

5. NGINX Location Block für Bild/CSS/JS Dateitypen

Der Modifier ~* im nächsten Location Block passt auf jede Anfrage (case-insensitive) die mit png, ico, gif, jpg, jpeg, css oder js endet. Anfragen an den /images/ Ordner werden jedoch durch den vorherigen Location Block bedient.

location ~* .(png|ico|gif|jpg|jpeg|css|js)$ {
    ...
    ...
}

6. RegEx Case Sensitive Match

Der Modifier ~ im folgenden Location Block führt zu einem case-sensitive regulären Ausdrucksmatch, stoppt aber nicht die Suche nach einem besseren Match.

location ~ /images {
    ...
    ...
}

7. NGINX Location RegEx Case Insensitive Match Beispiel

Der Modifier ~* im folgenden Location Block führt zu einem case-insensitive regulären Ausdrucksmatch, aber die Suche stoppt hier nicht für ein besseres Match.

location ~* /images {
     ...
     ...
}

Zusammenfassung

Das Verständnis der NGINX Location Directive ist essenziell, um Endpunkte der angeforderten URI im Dateisystem nachzuverfolgen. Die Modifiers, Schritte zur Auswahl eines Location Blocks und einige in diesem Artikel diskutierte Beispiele helfen Ihnen, leicht mit Location Blocks in NGINX zu beginnen.

Starten Sie Ihre Cloud-Reise mit unserer kostenlosen Trial-Version!

Entdecken Sie die grenzenlosen Möglichkeiten unserer Cloud-Dienste ganz unverbindlich. Melden Sie sich jetzt für unsere kostenlose Trial-Version an und erleben Sie, wie unsere innovativen Lösungen Ihr Business transformieren können.

Try for free!