Mastering Nginx -Standortblöcke beherrschen
Nginx wählt Standortblöcke gemäß Priorität aus: = (exakte Übereinstimmung) ist die höchste, ^~ (Präfix -Match) ist das zweite, ~ oder ~* (reguläres Spiel) ist das niedrigste und das normale Präfix ist das niedrigste; 2. Häufige Muster umfassen ^~ optimieren statische Dateien, /API /Proxy -Schnittstelle, ~ Maskieren versteckter Dateien, = Schnellantwort -Root -Pfad; 3. Vermeiden Sie Fallen: Missbrauch nicht die Regelmäßigkeit, achten Sie auf die Unterschiede in den Schwanzschleichen und verwenden Sie Try_files vernünftigerweise, um das Spa -Routing zu implementieren. 4. Nach der Änderung müssen Sie sudo nginx -t verwenden, um die Konfiguration zu testen und den Pfad vorübergehend hinzuzufügen /zu debuggen, um die übereinstimmende Logik zu überprüfen. Beherrschen Sie die Prioritätsreihenfolge und schreiben Sie eine effiziente und sichere NGINX -Konfiguration.
NGINX -Standortblöcke sind eines der leistungsstärksten und am häufigsten missverstandenen Merkmale in der Nginx -Konfiguration. Sie bestimmen, wie Nginx Anfragen basierend auf dem URL -Pfad umgeht - aber die Regeln für die Übereinstimmung und Priorität können schwierig sein, wenn Sie nicht wissen, wonach Sie suchen müssen.

Hier erfahren Sie, wie Sie Nginx -Standortblöcke beherrschen, ohne sich im Syntaxdschungel zu verlieren.
? Wie Nginx aus wählt, welchen Standortblock zu verwenden ist
Wenn eine Anfrage eingeht (z. B. /api/users
), überprüft Nginx alle definierten location
und wählt eine mithilfe einer strengen Prioritätsreihenfolge aus:

-
=
(genaue Übereinstimmung) - höchste Prioritätlocation = /api { # Nur übereinstimmt /API genau - nicht mehr, nicht weniger }
^~
(Präfixübereinstimmung, Fallempfindlichkeit, kein Regex)Ort ^~ / static / { # Übereinstimmung /static/css/app.css usw., stoppt jedoch weitere Regex -Schecks }
*
~
(Fallempfindlichkeitsempfindlich) oder ~ ~ `(Fall-unempfindliche Regex) **Standort ~* \. (JPG | Png | gif) $ { #Service Bilddateien-Fall-unempfindlich }
Unmodifiziertes Präfix -Match (kein Operator) - niedrigste Priorität unter den Spielen
Standort / { # Fallback - passt alles andere an }
✅ Schlüsseltipp : Nginx verwendet die Bestellung in Ihrer Konfigurationsdatei nicht - sie verwendet diese Prioritätslogik. Wenn Sie also einen Regex -Block vor einer genauen Übereinstimmung setzen, wird sich nichts ändern.
? Gemeinsame Muster, die Sie kennen sollten
✅ statische Dateien effizient bedienen
Ort ^~ / assets / {{{{ root/var/www/myapp; läuft 1y ab; add_header cache-kontroll "öffentlich, unveränderlich"; }
- Verwendet
^~
um Regex -Overhead zu vermeiden - Setzt lange Cache -Header für die Leistung
✅ Proxy -API -Anfragen
Ort / api / { proxy_pass http: // Backend; proxy_set_header host $ host; }
- Präfix -Match → Handles
/api/v1/users
usw. - Nein regex = schneller als
~ /api/
✅ Sensible Dateien blockieren
Ort ~ /\. { alles leugnen; Rückkehr 404; }
- Blöcke Zugriff auf versteckte Dateien wie
.env
,.git/
✅ Übereinstimmende Übereinstimmung für Wurzel- oder Gesundheitsprüfungen
location = / { Rückkehr 200 "ok"; add_Header content-Typ-Text/Ebene; }
- Schnellstmögliche Antwort - keine Mehrdeutigkeit
⚠️ Fallstricke zu vermeiden
Mischen Sie Regex nicht und Präfix unachtsam
Wenn Sie sowohllocation /api/
undlocation ~ /API/
haben, gewinnt das Präfix, es sei denn, Sie verwenden^~
oder=
.Beobachten Sie nachfolgende Schrägstriche
location /path
Pfadübereinstimmungen/path
und/path/anything
Aberlocation /path/
nur übereinstimmen Pfade, beginnend mit/path/
- subtil, aber wichtig!Regex ist teuer
Vermeiden Sie Regex, es sei denn, Sie benötigen es wirklich (wie Dateierweiterungen oder dynamische Pfade). Verwenden Sie nach Möglichkeit^~
oder einfache Präfixe.Verwenden Sie
try_files
innerhalb von Standorten mit BedachtStandort / { try_files $ uri $ uri / / index.html; }
So aktivieren Sie das Spa -Routing (z. B. React/Vue -Apps).
✅ Pro -Tipp: Testen Sie Ihre Konfiguration wie ein Profi
Nach der Bearbeitung:
sudo nginx -t
Fügen Sie dies vorübergehend hinzu:
Ort /Debugg { return 200 "Matched: /Debug \ n"; }
Testen Sie dann mit curl http://yoursite/debug
.
Oder verwenden Sie Tools wie nginxconfig.io , um sichere Konfigurationen zu visualisieren und zu generieren.
Bei der Beherrschung von Nginx -Standortblöcken handelt es sich nicht um das Auswendiglernen eines Bedieners - es geht darum, die Prioritätsreihenfolge zu verstehen und zu wissen, wann jeder Typ verwendet werden soll. Sobald Sie das erhalten haben, werden schnelle, sichere und wartbare NGINX -Konfigurationen zur zweiten Natur.
Denken Sie im Grunde genommen nur daran: =
, dann ^~
, dann ~
/ ~*
, dann einfaches Präfix. Alles andere fließt von dort aus.
Das obige ist der detaillierte Inhalt vonMastering Nginx -Standortblöcke beherrschen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Methode zum Aktivieren von HSTs besteht darin, den Header für strikte Transport-Security-Antwort auf der HTTPS-Website zu konfigurieren. Die spezifischen Operationen sind: 1.Nginx fügt die add_header -Anweisung im Serverblock hinzu. 2.APache fügt die Header -Anweisung in die Konfigurationsdatei oder .htaccess hinzu. 3.IIS fügt CustomHeaders in Web.Config hinzu; Es ist erforderlich, sicherzustellen, dass die Site HTTPPs vollständig unterstützt, Parameter maximal (gültiger Zeitraum), inklusive Unterdomänen (Subdomanains sind effektiv), Vorspannung (Vorspannungsliste) und die Voraussetzung ist die Voraussetzung für die Übermittlung bei der HSTSpreload-Liste.

Um den SSL/TLS -Dienst von NGINX zu konfigurieren, müssen Sie das Zertifikat und den privaten Schlüssel vorbereiten und die entsprechenden Parameter im Serverblock festlegen. 1. Bereiten Sie die Zertifikatdatei vor: Ermitteln Sie das Zertifikat in .Crt- oder .pem -Format und den entsprechenden .Key -privaten Schlüssel. Sie können Let’Sencrypt oder Commercial Organization verwenden, um es auszugeben und das Zwischenzertifikat in die Bundle -Datei zusammenzuführen. 2. Konfigurieren Sie den Serverblock: Definieren Sie Listen443SSL, SSL_Certificate Path as /etc/ssl/example.com.crt und SSL_Certificate_key Path as /etc/ssl/example.com.k in der Site -Konfigurationsdatei.

Nachdem Sie die NGINX -Konfiguration geändert haben, sollten Sie zuerst die Syntax testen und dann den Dienst neu laden. 1. Überprüfen Sie Nginx-T, um die Konfigurationsdateisyntax zu überprüfen. Wenn die Eingabeaufforderung "Syntaxisok" und "testissuccessful" aufgefordert werden, bedeutet dies, dass sie korrekt ist. Wenn ein Fehler vorliegt, wird die spezifische Problemlinie angezeigt. 2. Wenn die Konfigurationsdateiberechtigungen hoch sind, müssen Sie Sudonginx-T zum Ausführen verwenden. 3. bestätigen Sie, dass der Test tatsächlich geladen ist. Sie können den Pfad über nginx-t-c/path/to/your/nginx.conf angeben oder die Konfigurationsdatei anzeigen, die vom Hauptprozess über ps-ef | grepnginx verwendet wird. 4. Führen Sie nach dem Test den Sudonginx-Reload-Überladungsdienst aus, um die neue Konfiguration in Kraft zu setzen

ToSetupannginxServerblock, FirstUnteStanditsStructureS -UsesingtheserverdirectiveWithslikelisten, Server_Name und Llocation; Als nächstes, createArektorySchruTureForyoursuchas/var/www/example.com/htmlandsetProperpermissions;

Der ^~ -Modifikator wird in Nginx verwendet, um die Übereinstimmung der URL des angegebenen Präfixes zu priorisieren und nachfolgende reguläre Ausdrücke zu verhindern. Wenn die angeforderte URL mit diesem Präfix beginnt, übernimmt NGINX diese Blockkonfiguration sofort und überspringt alle regulären Ausdrücke (Ort ~ oder Ort ~*), erfordert jedoch keine vollständige genaue Übereinstimmung wie =. 1. Es ist für Situationen geeignet, in denen eine spezifische Pfadverarbeitung erforderlich ist (z. B. statische Ressourcen) und vermeiden, durch reguläre Regeln überschrieben zu werden. 2. Es wird häufig verwendet, um die Leistung zu verbessern und sicherzustellen, dass zuerst bestimmte Regeln ausgeführt werden. 3. Typische Szenarien umfassen Servicebilder, Skripte oder interne API -Routing. Im Vergleich zu anderen Modifikatoren: 4. Normales Präfix -Match überprüft weiterhin den regulären; 5. Die genaue Übereinstimmung gilt nur für den vollständigen Pfad. 6. Regelmäßiges Match wird in sein

ToconfigureAbackupserverinnginx, fügen Sie die "backup" parameterToaServerinTheUpstreamBlock hinzu und sicherstellen Sie, dass es sich, dass die INTER -SERVICEMTHEALTERSERVERSAREUTRAVALABLEINE.1.DEFINEDEFINETHEBABELUPSERVERUSKENSELDAWTAX "ServerbackUpUPUPUPUPUPUPUM;

Um einen bestimmten Benutzer-Agenten zu blockieren, kann es in Nginx, Apache oder Code (wie PHP, Python) implementiert werden. 1. In Nginx, Richter $ http_user_agent von if und zurückgegeben 403; 2. Verwenden Sie in Apache SetEnvifnocase und verweigern Sie, Zugriff zu verweigern. 3.. Richter Benutzer-Agent in das Programm und fangen die Anfrage ab. Gemeinsame UAs, die blockiert werden müssen, umfassen Python-Requests, Locken, leere UA usw. Die Auswahl der geeigneten Methode kann den Müllverkehr und die Sicherheitsrisiken effektiv reduzieren.

proxy_pass wird in nginx verwendet, um Client -Anforderungen an den Backend -Server weiterzuleiten, und seine Kernaufgabe besteht darin, NGINX zu ermöglichen, HTTP -Anforderungen als Reverse -Proxy zu verarbeiten. 1. Es empfängt Benutzeranfragen und leitet an den angegebenen Backend -Dienst (z. B. Node.js -Anwendung auf Port 3000) weiter. 2. Nginx verarbeitet die vom Backend zurückgegebene Antwort und sendet sie an den Benutzer zurück. Gleichzeitig kann es im Prozess Cache-, Komprimierungs- oder Zugriffskontrollfunktionen hinzufügen. 3. Beim Einstellen achten Sie auf die Beziehung zwischen den Pfadanpassungen und den Schwanzschläken, um festzustellen, ob der Pfad des passenden Teils entfernen soll; 4.. Es ist notwendig, mit der Einstellung von Standard-Proxy-Headern (z. B. Host, X-Real-IP usw.) zusammenzuarbeiten, um sicherzustellen, dass das Backend die korrekten Kontextinformationen erhält. 5. Häufige Probleme sind der Weg nicht
