Wenn nginx eine Anfrage empfängt, gleicht es zunächst einen Server nach dem Servernamen ab und fährt dann mit der Zuordnung anhand des Speicherorts auf dem Server fort. Servername abgleichen In nginx bestimmt der Servername, welcher Server verwendet wird, wenn eine Anfrage eingeht. nginx verwendet das Host-Feld im Anfrageheader, um den Servernamen abzugleichen. Beim Definieren des Servernamens können Sie einen vollständigen Namen, einen Platzhalternamen oder einen regulären Ausdrucksnamen verwenden. Die Reihenfolge der Übereinstimmung ist wie folgt:
Wenn keine Übereinstimmung gefunden wird, wird der Standardserver für die Verarbeitung verwendet. Wenn er nicht definiert ist, wird der erste definierte verwendet. Verwenden Sie drei einfache Server als Beispiele, lassen Sie sie Port 80 abhören und setzen Sie den Servernamen jeweils auf *.org, *.net, *.com: Server { hören Sie 80; Servername example.org www.example.org; Rückgabe 401; } Server { hören Sie 80; Servername Beispiel.net www.Beispiel.net; Rückgabe 402; } Server { hören Sie 80; Servername Beispiel.com www.Beispiel.com; Rückgabe 403; } In der obigen Konfiguration ist der Standardserver der erste. Jeder Zugriff auf einen nicht vorhandenen Server gibt 401 zurück. Sie können jedoch mit default_server manuell einen Standardhost festlegen. Der default_server wird im Listenfeld wie folgt festgelegt: Server { hören Sie 80 Standardserver; Servername Beispiel.net www.Beispiel.net; } Wenn beim erneuten Abgleich keine Übereinstimmung gefunden wird, wird dieser Server verwendet. Zugriff verweigert Wenn Sie eine Anfrage ohne Host-Feld verbieten möchten, können Sie den folgenden Server definieren: Server { hören Sie 80; Servername ""; Rückgabe 444; } server_name wird als leere Zeichenfolge definiert. Wenn das Feld Host leer ist oder nicht existiert, wird dieser Server abgeglichen und ein 404-Statuscode zurückgegeben.
Wenn Sie den Zugriff auf nicht vorhandene Hosts verbieten möchten, können Sie dies wie folgt definieren: Server { hören Sie 80 Standardserver; Servername _; Rückgabe 444; } _ hat hier keine besondere Bedeutung, da ein Domänenname nicht in _ vorkommt und daher nicht mit einem echten Domänennamen identisch ist. Dasselbe gilt für andere ungültige Zeichen. Sowohl IP als auch Servername müssen übereinstimmen Sehen wir uns nun an, wie die Mischung aus unterschiedlichen Abhör-IPs und unterschiedlichen Servernamen gehandhabt wird: Server { hören Sie 192.168.1.1:80; Servername example.org www.example.org; } Server { hören Sie 192.168.1.1:80; Servername Beispiel.net www.Beispiel.net; } Server { hören Sie 192.168.1.2:80; Servername Beispiel.com www.Beispiel.com; } In dieser Konfiguration gleicht nginx zuerst die IP ab und dann den Servernamen. Wenn kein Servername übereinstimmt, wird der Standardserver verwendet. Wenn beispielsweise eine Anforderung für den Domänennamen www.example.com von 192.168.1.1:80 kommt, aber nur zwei Server auf 192.168.1.1:80 lauschen und keiner von ihnen www.example.com entsprechen kann, wird der Standardhost der beiden Server verwendet. Da der Standardserver nicht zum Definieren des Listeners verwendet wird, ist der erste Server, www.example.org, der Standard. Natürlich können Sie den Standardserver definieren: Server { hören Sie 192.168.1.1:80; Servername example.org www.example.org; } Server { hören Sie 192.168.1.1:80 Standardserver; Servername Beispiel.net www.Beispiel.net; } Server { hören Sie 192.168.1.2:80 Standardserver; Servername Beispiel.com www.Beispiel.com; } Passender Standort Nachdem nginx einen Server gefunden hat, wird es die Anfrage über den Standort weiter verarbeiten. Nachfolgend sehen Sie ein Beispiel: Server { hören Sie 172.17.0.3:80; Servername _; Standort / { Rückgabe 401; } Standort ~*\.(gif|jpg|png)$ { Rückgabe 402; } Standort ~*\.(gif|jpg|png)$ { Rückgabe 404; } Standort /API { Rückgabe 403; } } Nginx sucht zunächst an allen Standorten nach dem Präfix, um eine Übereinstimmung zu finden. Nach der Übereinstimmung mit dem Präfix werden die durch den regulären Ausdruck definierten Standorte der Reihe nach abgeglichen. Wenn eine Übereinstimmung gefunden wird, wird die Verarbeitung beendet. Wenn keine Übereinstimmung gefunden wird, wird der Standort verwendet, der zuvor mit dem Präfix übereinstimmte. Im Folgenden finden Sie ein Beispiel für eine spezifische Übereinstimmung:
siehe
Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung der MySQL Master-Slave-Inkonsistenz und Lösungen
>>: WeChat-Applet-Beispiel für die direkte Verwendung von Funktionen in {{ }}
Der Vorteil der Master-Slave-Synchronisierungskon...
1. Einleitung Ob die Erstellungszeit einer Datei ...
Funktion 0. Aktuelle Uhrzeit anzeigen Befehl: sel...
MySQL-Benutzer und -Berechtigungen In MySQL gibt ...
Linux-Bibliothek generieren Die Linux-Version ver...
Vorwort Mithilfe der Hyperthreading-Technologie v...
Der spezifische Code lautet wie folgt: <a href...
Inhaltsverzeichnis Fazit zuerst Frage Lösung Verw...
Das Herunterladen dieser Datenbank nimmt viel Zei...
Ein Docker-Container startet beim Start beispiels...
Erstellen Sie eine neue Konfigurationsdatei (gehe...
Beim Freigeben eines Projekts müssen Sie häufig d...
<br />Struktur und Hierarchie reduzieren die...
Dieser Artikel beschreibt anhand von Beispielen d...
1. Einführung in Komprimierung und Verpackung All...