Heim > Artikel > Backend-Entwicklung > Detailliertes Beispiel dafür, wie Nginx Anfragen verarbeitet
1. Zuerst werden die beiden Serverblöcke wie folgt konfiguriert
server { listen 80; server_name hanmk.com; location / { root /tmp/data/; autoindex on; } } server { listen 80 default_server; server_name demo.com ; location / { # tomcat首页 proxy_pass http://localhost:8080; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location /jenkins { #tomcat部署jenkins proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; #获取真实ip proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#获取代理者的真实ip proxy_redirect off; } location /ApprPhD { #nodeJs服务器 proxy_pass http://192.168.XXX.XXX:3030; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; #获取真实ip proxy_set_header REMOTE-HOST $remote_addr; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#获取代理者的真实ip proxy_redirect off; } }
Beschreibung:
Im ersten Server verweist der Dienst auf die statische Datei unter server/tmp/data/ Pfad;
Auf dem zweiten Server verweist der Dienst auf drei virtuelle Routing-Maschinen (eine Route zeigt auf die lokal auf der virtuellen Maschine bereitgestellte Tomcat-Homepage, eine auf die unter Tomcat bereitgestellten Jenkins und eine auf die Anwendung auf einer anderen virtuellen Maschine bereitgestellt)
Die auf beiden Servern konfigurierten Überwachungsports sind 80 (auch um die Testergebnisse besser anzuzeigen)
Servername gibt den (virtuellen Host-)Servernamen an und konfiguriert ihn im Allgemeinen Der Domänenname (example.org, www.example.org) kann mithilfe eines präzisen Namens, eines Platzhalternamens oder eines regulären Ausdrucks definiert werden. Wenn Sie auf einen Anforderungslink im externen Netzwerk zugreifen, stimmt nginx zu, ob er an Server1 oder Server2 weitergeleitet wird basierend auf dem von Ihnen eingegebenen Hostnamen)
Um die Testergebnisse besser sehen zu können, habe ich außerdem den Domänennamen in server_name eingegeben, anstatt die echte IP oder den lokalen Host der virtuellen Maschine einzugeben (da die IP Adressen sind alle IP-Adressen virtueller Maschinen. Wenn Sie die IP-Adresse eingeben, können Sie Nginx nicht mitteilen, wie die Anfrage weitergeleitet werden soll.) (Wenn nur ein Server vorhanden ist, muss der Servername nicht eingegeben werden, da dies der Fall ist Wird irgendwann an den Server weitergeleitet, und solange der Port korrekt ist, ist die Weiterleitung immer noch möglich.
Ausfüllen hanmk.com für Servername
Füllen Sie demo.com für Server2 aus
Nach Abschluss der obigen Konfiguration müssen Sie die Konfigurationsdatei nginx .conf neu laden
2 Konfigurieren Sie Hosts-Datei des Clients
Im ersten Schritt wurden hanmk.com und demo.com jeweils in server_name konfiguriert. Da der Domain-Name-Dienst jedoch nicht aktiviert wurde, können diese beiden Domain-Namen direkt zum Senden von Anfragen verwendet werden Der Client schlägt fehl. Um diese beiden gefälschten Domänennamen zum normalen Senden von Anforderungen zu verwenden, müssen Sie sie zunächst auf dem Client-Host konfigurieren. Die Schritte sind wie folgt:
Öffnen Sie die Hosts-Datei und fügen Sie die folgenden zwei Zeilen hinzu (da die zugeordneten IP-Adressen identisch sind, können Sie die beiden Domänennamen auch in einer Zeile hinzufügen, durch Leerzeichen getrennt)
3. Testen
(1) Verwenden Sie http://hanmk.com/, um eine Anfrage zu senden und auf die statischen Dateien unter dem Pfad der virtuellen Maschine/tmp/data/ zuzugreifen
(2) Besuchen Sie http://demo.com/, http://demo.com/jenkins bzw. http://demo.com/ApprPhD/index, die Ergebnisse sind wie folgt
Dies bedeutet, dass Nginx anhand des Domänennamens des Zugriffslinks mit dem entsprechenden Server übereinstimmt Leiten Sie dann basierend auf dem Standortpfad zum entsprechenden Dienst
Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel dafür, wie Nginx Anfragen verarbeitet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!