1. Fehlerbehebung und Lokalisierung des Problems, dass Nginx nach der Konfiguration von proxy_pass 404 zurückgibt1.1. Problem In einer Produktionskonfiguration mit mehreren Weiterleitungen besteht die Anforderung aus dem folgenden Diagramm: 1.2. Finden Sie die Ursache des Problems Unsere Standardkonfiguration von Nginx Proxy_Set_Header Host $host;
Wenn wir diese Einstellung verwenden, wenn die erste Schicht von Nginx (Nginx1) als Proxy fungiert, lautet der von uns angeforderte Domänenname www.djx.com und der aus dem Header dieser Anforderung erhaltene Hostwert lautet Proxy_Set_Header Host $host; Der Hostwert wird auf den weitergeleiteten Hostwert gesetzt, aber der angeforderte Domänenname lautet 1.3. offizielle Informationen zu proxy_set_headerOffizielle Dokumentation Die Standardeinstellung ist Proxy_Set_Header Host $Proxy_Host; proxy_set_header Verbindung schließen; 1.4 Lösung Der Wert von Host wird auf Proxy_Set_Header Host $Proxy_Host; 2. Erweiterung gängiger Konfigurationen1. $proxy_hostProxy_Set_Header Host $Proxy_Host; #Standardkonfiguration# Wie der Name schon sagt, wird der Anforderungsheader auf den Domänennamen hinter dem Proxy gesetzt. Beispiel 1: Upstream open-hz8443{ Server 10.60.6.184:8000 max_fails=1 fail_timeout=3s Gewicht=10; } Dann ist der Wert von $proxy_host hier open-hz8443. Beispiel 2: Standort ^~ /wss/v1 { Proxy-Passwort http://10.60.6.184:8000; Proxy_Set_Header Host $Proxy_Host; proxy_set_header Verbindung "Upgrade"; Proxy_Set_Header-Upgrade $http_upgrade; tcp_nodelay ein; } 2. $hostProxy_Set_Header Host $host; # Wenn das Feld nicht im Anforderungsheader enthalten ist, kann es nicht übergeben werden. In diesem Fall können Sie den Wert der Host-Variable zuweisen, indem Sie die Host-Variable festlegen. Wenn im Anforderungsheader kein Host-Wert vorhanden ist, wird der Wert von Servername direkt zum Auffüllen verwendet. Wenn der Host-Wert im Anforderungsheader empfangen wird, wird der Host-Wert im Anforderungsheader direkt verwendet. 3. $host:$proxy_port Proxy_Set_Header Host $host:$Proxy_Port; # Der Servername und der Port werden zusammen über den Proxyserver weitergegeben. Im Vergleich zum vorherigen Punkt gibt es einen zusätzlichen $proxy_port. Dieser $proxy_port ist der Port in proxy_pass. Wenn kein Port vorhanden ist, z. B. 80 und 443. Es wird auch eine Füllung 80/443 verwendet. Beispiel: Proxy-Passwort http://www.baidu.com; $host:$proxy_port = Baidu ip:80 4. $http_hostProxy_set_header Host $http_host; # Ein sich nicht änderndes Anforderungsheaderfeld „Host“ kann wie folgt übergeben werden: Wenn im Anforderungsheader kein Host-Wert vorhanden ist, wird der Wert von Servername direkt zum Auffüllen verwendet. Und fügen Sie den Port hinzu. Wenn der Wert 80/443 beträgt, fügen Sie ihn nicht hinzu. Tatsächlich geht es darum, den Wert in der URL anzufordern. Wenn der Host-Wert im Anforderungsheader empfangen wird, wird der Host-Wert im Anforderungsheader direkt verwendet. Beispiel
Grundkonfiguration Server{ hören Sie 80; Servername www.djx.com; Standort / { Proxy-Passwort http://www.baidu.com/; } } 192.168.1.190 Nginx2 Server{ hören Sie 80; Servername www.baidu.com; Standort / { Proxy-Passwort http://192.168.1.80:8080/; } } ** Grundlegende Konfiguration verwenden ** Proxy_Set_Header Host $Proxy_Host; Dann ist der Wert des Headers zu http://192.168.1.80:8080/ www.baidu.com. ** $host wird verwendet ** Proxy_Set_Header Host $host; Referenzartikel: https://cloud.tencent.com/developer/article/1557504 Dies ist das Ende dieses Artikels über den 404-Fehler nach der Nginx-Konfiguration von Proxy_Pass. Weitere relevante Inhalte zur Nginx-Konfiguration von Proxy_Pass finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: HTML-Formular-Tag-Tutorial (5): Textfeld-Tag
>>: Praktisches Tutorial zum Ändern des MySQL-Zeichensatzes
Inhaltsverzeichnis Vorwort Keep-Avlive-Hook-Funkt...
In diesem Artikelbeispiel wird der spezifische Co...
01. Befehlsübersicht Der Befehl tr kann Zeichen a...
Inhaltsverzeichnis 1: Kennwortfreie Anmeldekonfig...
Schöner Code ist die Grundlage einer schönen Websi...
Bemerkung: Die Datenmenge in diesem Artikel beträ...
Vorwort Die Serversystemumgebung ist: CentOS 6.5 ...
Der spezifische Code zur Implementierung des einz...
Ursachen und Folgen 1. Wenn Sie den Ansible-Befeh...
Vorwort JavaScript unterscheidet sich von anderen...
Heute habe ich zufällig den Parameter slave_exec_...
Verwenden Sie Anti-Shake, um DIV verschwinden zu ...
Inhaltsverzeichnis Problembeschreibung: Lösung 1 ...
MySQL Master-Slave-Konfiguration 1. Vorbereitung ...
Verwenden Sie die FRAME-Eigenschaft, um den Stilt...