Nginx entscheidet zunächst, welcher Serverblock in der Konfigurationsdatei für die Verarbeitung verwendet werden soll. Nehmen wir die folgende Serverkonfiguration an Server { hören Sie 80; Servername aaa; ... } Server { hören Sie 80; Servername bbb; ... } Nginx bestimmt anhand des Wertes im Feld „Host“ im Header{} für eingehende HTTP-Anforderungen, welcher Server verwendet werden soll. Wenn im Anforderungsheader kein Host-Feld vorhanden ist oder der Wert im Host-Feld nicht mit dem {server_name} im Server{} in der Nginx-Konfigurationsdatei übereinstimmt, wird der erste Server{} zum Verarbeiten der Anforderung verwendet. Wenn der Wert im Feld „Host“ im Anforderungsheader mit dem {server_name} in einem Server{} in der Nginx-Konfigurationsdatei übereinstimmt, wird dieser Server{} zum Verarbeiten der Anforderung verwendet. Mit dem Tool „curl“ können Sie problemlos Experimente durchführen. Mit „curl“ können Sie den Anforderungsheader der HTTP-Anforderung festlegen, sodass Sie das Host-Feld mit [-H] beliebig festlegen können. Die folgende 10.210.65.73 ist die IP-Adresse der Maschine, auf der nginx installiert ist. Wenn Sie also den folgenden Befehl verwenden, verwendet nginx nach dem Senden der HTTP-Anforderung den Server {server_name aaa}, um die Anforderung zu verarbeiten. curl.exe -H "Host: aaa" 10.210.65.73 Sehr wichtige Schlussfolgerung: Servername entspricht dem Wert des Host-Felds im HTTP-Anforderungsheader. Mit der oben genannten theoretischen Unterstützung ist es einfach, Reverse-Proxy und Lastausgleich einzurichten: Wenn das Host-Feld im eingehenden HTTP-Anforderungsheader aaa ist, wird storage.test es verarbeiten. Wenn das Host-Feld im eingehenden HTTP-Anforderungsheader bbb ist, wird tracker.test es verarbeiten. #Lastausgleichskonfiguration. Die Maschine mit der IP 129 hat eine hohe Konfiguration, daher wird ihr die Nummer 27 zugewiesen, damit sie mehr Upstream-Speicher handhaben kann.test { Server 10.210.65.129:80 Gewicht=27; Server 10.210.65.130:80 Gewicht=1; } #Lastausgleichskonfiguration Upstream Tracker.test { Server 10.210.65.52:80 Gewicht=7; Server 10.210.65.53:80 Gewicht=2; } #Dateispeicherserver { hören Sie 80; Servername aaa; Standort / { #Der Inhalt nach http::// ist selbstdefiniert und entspricht dem Upstream-Namen proxy_pass http://storage.test oben; } } #Dateiserver-Tracker Server { hören Sie 80; Servername bbb; Standort / { #Der Inhalt nach http::// ist selbstdefiniert und entspricht dem Upstream-Namen proxy_pass http://tracker.test; } } Auf welchem Port lauscht der Listen-In-Server{}? Abgehört wird der Port des Prozesses (meistens Browser), der die HTTP-Anfrage sendet (bei einer HTTP-Anfrage ist der Port 80), nicht der Port des eigenen Prozesses des Nginx-Servers. Nginx entscheidet, welcher Server zur Verarbeitung der HTTP-Anforderung verwendet wird, basierend auf dem Wert im Feld „Host“ des HTTP-Anforderungsheaders und dem Port des Prozesses, der die HTTP-Anforderung sendet (meistens der Browser). 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:
|
<<: Ein Beispiel für das elegante Schreiben von Urteilen in JavaScript
>>: Mysql Sql-Anweisungsübungen (50 Fragen)
In diesem Artikel wird der spezifische Code für d...
Inhaltsverzeichnis 1. Einleitung: 2. Docker: 1 Be...
<br /> Englisches Original: http://desktoppu...
Mauseffekte erfordern die Verwendung von setTimeo...
In diesem Artikel wird der spezifische Code von j...
1. BIOS überprüfen Überprüfen Sie zunächst, in we...
Boolescher MySQL-Wert, speichert „false“ oder „tr...
Inhaltsverzeichnis Vorwort 1. Aktuelle Uhrzeit er...
1.0 Redis-Persistenz Redis ist eine In-Memory-Dat...
Führen Sie die Anweisung „create table“ in der Da...
Nehmen Sie als Beispiel die Bereitstellung von ht...
Viele Leute sagen, dass IE6 PNG-Transparenz nicht...
1. Adresse herunterladen https://dev.mysql.com/do...
Hiermit werden die Grundkenntnisse des Interviewt...
MySQL ist ein relationales Datenbankverwaltungssy...