Heim > Artikel > Backend-Entwicklung > Auf den Domänennamen des Nginx-Reverse-Proxy-Ports kann nicht zugegriffen werden. Das Problem wurde behoben
Ich habe dieses Problem am ersten Arbeitsmorgen im neuen Jahr gelöst. Ehrlich gesagt ist dies das erste Mal, dass ich darauf gestoßen bin. Wenn Sie einen Domänennamen als Proxy für ein Webprojekt verwenden, wird bei der Anforderung aus irgendeinem Grund nicht der Domänenname, sondern der IP-Port direkt als Pfad verwendet, was zum Absturz der Webseite führt und unbrauchbar wird.
Da Nginx als Front-End-Server verwendet wird, habe ich einige Änderungen vorgenommen. Das Folgende ist der Vergleich vor und nach der Änderung:
Vor der Änderung:
Server {
proxy_pass http://10.14
8.2
2.81 :8180; 04 /50x. html; local = /50x.html { root html; 🎜>Server { 🎜> Standort / { Kopfzeile X -Real-IP $remote_addr;
Proxy_set_header Host $host:$server_port;
Proxy_set_header 502 503 504 /50x.html;
location = /50x.html {
html;
} }
}
Zugriff erfolgreich.
Natürlich wird empfohlen, für statische Ressourcen beispielsweise
location ~ .*.(gif|jpg|png|html|htm| zu verwenden css|js|flv |ico|swf)(.*) {
Proxy_Redirect Off;
Proxy_Set_Header Host $Host; Proxy_cache Cache_one; Proxy_cache_valid 200 302 1 h; Proxy_cache_valid 301 1d ; proxy_cache_valid any 1m; läuft 30 Tage ab; index index.html index.htm;
}
Die Effizienz ist besser.
Die Hauptreferenz ist der Originaltext. Ich bin diesem großen Bruder für seine Anleitung sehr dankbar:
http://www.cnblogs.com /likehua/p/4056625.html
Der Inhalt ist wie folgt:
Nginx's Standard-Reverse Port ist 80, also Proxy. Der letzte Port ist 80, was zu Zugriffsfehlern führt. Der Hauptgrund ist, dass der Antwortport nicht in der Hostkonfiguration der Nginx-Konfigurationsdatei festgelegt ist.
Die relevanten Konfigurationsdateien lauten wie folgt:
1
2
4
Wie oben, die Host-Konfiguration hat nur Host, kein entsprechender Port, was dazu führt, dass an der Stelle, an der der Proxy ausgeführt wird, der falsche Port abgerufen wird. In diesem Artikel wird Java als Beispiel verwendet:
Zu diesem Zeitpunkt ist der erhaltene Port 80, obwohl der von Nginx überwachte Port 9090 ist. Dieser Fehler macht mich sehr deprimiert. Ändern Sie daher die Nginx-Konfigurationsdatei und ändern Sie den Host in $host:$server_port. Die Konfigurationsdatei lautet wie folgt: