Zusammenfassung der Nginx-Konfigurationsstandortmethode

Zusammenfassung der Nginx-Konfigurationsstandortmethode

Standortabgleichsreihenfolge

1. Übereinstimmung mit dem Präfixbefehl "=". Wenn die Übereinstimmung erfolgreich ist, stoppen Sie die anderen Übereinstimmungen.
2. Gewöhnlicher Abgleich von Zeichenfolgenanweisungen. Die Reihenfolge ist von lang nach kurz. Wenn die Position, die erfolgreich übereinstimmt, ^~ verwendet, werden andere Abgleiche beendet (regulärer Abgleich).
3. Übereinstimmung mit regulären Ausdrucksbefehlen gemäß der Reihenfolge in der Konfigurationsdatei. Bei Erfolg andere Übereinstimmungen stoppen
4. Wenn im dritten Schritt eine Übereinstimmung vorliegt, verwenden Sie das Ergebnis, andernfalls verwenden Sie das Ergebnis des zweiten Schritts

Notiz

1. Die Übereinstimmungsreihenfolge besteht darin, zuerst mit der normalen Zeichenfolge und dann mit dem regulären Ausdruck übereinzustimmen. Darüber hinaus erfolgt die Reihenfolge der Übereinstimmung gemeinsamer Zeichenfolgen von lang nach kurz entsprechend der Länge der Zeichen in der Konfiguration. Das heißt, die Reihenfolge der mit gemeinsamen Zeichenfolgen konfigurierten Standorte ist irrelevant. Am Ende führt nginx die Übereinstimmung entsprechend der Länge der Konfiguration aus. Es ist jedoch zu beachten, dass reguläre Ausdrücke in der Reihenfolge in der Konfigurationsdatei getestet werden. Die Suche wird beendet, wenn die erste Übereinstimmung mit dem regulären Ausdruck gefunden wurde.

2. Im Allgemeinen wird nach erfolgreichem Abgleich des Speicherorts der normalen Zeichenfolge auch der Speicherort des regulären Ausdrucks abgeglichen. Es gibt zwei Möglichkeiten, dieses Verhalten zu ändern. Eine besteht darin, das Präfix "=" zu verwenden, das eine strikte Übereinstimmung durchführt und andere Übereinstimmungen sofort nach einer erfolgreichen Übereinstimmung stoppt, während die Anforderung verarbeitet wird. Die andere besteht darin, das Präfix "^~" zu verwenden. Wenn dieses Präfix für eine reguläre Zeichenfolge verwendet wird, weist es nginx an, den regulären Ausdruck nicht zu testen, wenn der Pfad übereinstimmt.

Muster und Reihenfolge anpassen

„Location = /uri =“ am Anfang zeigt eine exakte Übereinstimmung an, und nur eine vollständige Übereinstimmung wird wirksam.

location ^~ /uri ^~ beginnt mit einer Präfixübereinstimmung im URL-Pfad und steht vor dem regulären Ausdruck.

Der Ort ~ Muster ~ am Anfang weist auf eine reguläre Übereinstimmung unter Beachtung der Groß- und Kleinschreibung hin.

Standort ~* Muster ~* beginnt mit einem regulären Ausdruck ohne Berücksichtigung der Groß-/Kleinschreibung.

Der Standort /uri ohne Modifikatoren weist ebenfalls auf eine Präfixübereinstimmung hin, jedoch nach der Übereinstimmung mit regulären Ausdrücken.

Standort/Universelle Übereinstimmung, jede Anfrage, die nicht mit anderen Standorten übereinstimmt, wird abgeglichen, was der Standardeinstellung im Switch entspricht.

Experimenteller Fall

Testen Sie „^~“ und „~“, die Nginx-Konfiguration ist wie folgt. Geben Sie http://localhost/helloworld/test in den Browser ein und es wird 601 zurückgegeben. Wenn Sie Nr. 1 kommentieren, Nr. 2 öffnen und http://localhost/helloworld/test in den Browser eingeben, wird 603 zurückgegeben. Hinweis: #1 und #2 können nicht gleichzeitig geöffnet werden. Wenn sie gleichzeitig geöffnet werden, wird beim Starten von nginx die Meldung nginx: [emerg] doppelter Standort "/helloworld"... ausgegeben, da es sich bei beiden um normale Zeichenfolgen handelt.

Standort ^~ /hallowelt { #1
 Rückgabe 601;
}
  
#Standort /hallowelt { #2
# Rückgabe 602;
#}

Standort ~ /hallowelt {
 Rückgabe 603;
} 

Testen Sie die Länge einer gemeinsamen Zeichenfolge (das Übereinstimmen einer gemeinsamen Zeichenfolge hat nichts mit der Reihenfolge, sondern mit der Länge zu tun). Geben Sie http://localhost/helloworld/test/a.html in den Browser ein und es wird 601 zurückgegeben. Geben Sie http://localhost/helloworld/a.html in den Browser ein und er gibt 602 zurück.

Standort /hallowelt/test/ { #1
 Rückgabe 601;
}
  
Standort /hallowelt/ { #2
 Rückgabe 602;
}

Testen Sie die Reihenfolge der regulären Ausdrücke (reguläre Übereinstimmungen sind reihenfolgeabhängig). Geben Sie http://localhost/helloworld/test/a.html in den Browser ein und geben Sie 602 zurück; vertauschen Sie die Reihenfolge von Nr. 2 und Nr. 3, geben Sie http://localhost/helloworld/test/a.html in den Browser ein und geben Sie 603 zurück

Standort /hallowelt/test/ { #1
 Rückgabe 601;
}

Standort ~ /hallowelt { #2
 Rückgabe 602;
}
  
Standort ~ /hallowelt/test { #3
 Rückgabe 603;
}

Ich denke, dass es in der Praxis mindestens drei passende Regeldefinitionen gibt, und zwar die folgenden:

#Direkte Zuordnung zum Website-Stamm. Es ist häufiger, über den Domänennamen auf die Homepage der Website zuzugreifen. Dies beschleunigt die Verarbeitung, heißt es auf der offiziellen Website. 
#Dies wird direkt an den Backend-Anwendungsserver weitergeleitet, oder es kann eine statische Homepage sein# Die erste erforderliche Regel location = / { 
 Proxy-Passwort http://tomcat:8080/index 
} 
 
# Die zweite obligatorische Regel besteht darin, statische Dateianforderungen zu verarbeiten. Dies ist die Stärke von nginx als HTTP-Server. # Es gibt zwei Konfigurationsmodi, Verzeichnisübereinstimmung oder Suffixübereinstimmung. Wählen Sie einen aus oder verwenden Sie beide Speicherorte ^~ /static/ { 
 Wurzel /webroot/static/; 
} 
Standort ~* \.(gif|jpg|jpeg|png|css|js|ico)$ { 
 Wurzel /webroot/res/; 
} 
 
#Die dritte Regel ist eine allgemeine Regel, die zum Weiterleiten dynamischer Anforderungen an den Back-End-Anwendungsserver verwendet wird. #Nicht statische Dateianforderungen sind standardmäßig dynamische Anforderungen, und Sie können sie entsprechend Ihrer tatsächlichen Situation erfassen. #Schließlich haben einige beliebte Frameworks mittlerweile selten die Suffixe .php und .jsp. location / { 
 Proxy-Passwort http://tomcat:8080/ 
}

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Verwenden Sie das Tool nginx.vim zur Syntaxhervorhebung und Formatierung der Konfigurationsdatei nginx.conf
  • So konfigurieren Sie die bidirektionale Zertifikatsüberprüfung auf dem Nginx-Proxyserver
  • So konfigurieren Sie den virtuellen Nginx-Host in CentOS 7.3
  • Detaillierte Erklärung des Kommunikationsmechanismus zwischen PHP-FPM und Nginx
  • Detaillierte Erläuterung der Verwendung des Nginx-Reverse-Proxys zur Lösung domänenübergreifender Probleme
  • Ein Beispiel für die Verwendung von nginx zum Konfigurieren mehrerer Laravel-Projekte mit einem Domänennamen
  • Shell-Skript Nginx-Automatisierungsskript
  • So erstellen Sie einen Nginx-Server mit Docker
  • Eine kurze Erläuterung, warum Daemon Off beim Ausführen von Nginx in Docker verwendet wird
  • Beispielmethode zum Bereitstellen eines React-Projekts auf Nginx

<<:  Upgrade von MySQL 5.1 auf 5.5.36 in CentOS

>>:  React+Antd implementiert ein Beispiel zum Hinzufügen, Löschen und Ändern von Tabellen

Artikel empfehlen

Implementierung der kontinuierlichen Integration von Jenkins+Docker

Inhaltsverzeichnis 1. Einführung in Jenkins 2. Je...

Detaillierte Erklärung der HTML-Dokumenttypen

Meines ist: <!DOCTYPE html> Blog-Garten: &l...

Detaillierte Erklärung des Linux-Texteditors Vim

Vim ist ein leistungsstarker Vollbild-Texteditor ...

MySQL 8.x MSI-Version Installations-Tutorial mit Bildern und Text

1. MySQL herunterladen Offizielle Website-Downloa...

Implementierung der Elementzeitleiste

Inhaltsverzeichnis Komponenten - Zeitleiste Benut...

Entdecken Sie, wie Ihnen eine LED den Einstieg in den Linux-Kernel erleichtert

Inhaltsverzeichnis Vorwort LED-Trigger Entdecken ...

Detaillierte Erklärung der MySQL-Berechtigungen und -Indizes

MySQL-Berechtigungen und Indizes Der höchste Benu...

W3C Tutorial (12): W3C Soap Aktivität

Bei Webdiensten geht es um die Kommunikation zwis...

Implementierung von Linux-Dateisystemvorgängen

In dieser Lesenotiz werden hauptsächlich die Vorg...

Vue erzielt einen nahtlosen Karusselleffekt

In diesem Artikel wird der spezifische Code von V...

Zusammenfassung der Anwendungsbereiche von Kubernetes

Kubernetes ist aufgrund seiner Anwendungsportabil...