Heim  >  Artikel  >  Backend-Entwicklung  >  Auf den Domänennamen des Nginx-Reverse-Proxy-Ports kann nicht zugegriffen werden. Das Problem wurde behoben

Auf den Domänennamen des Nginx-Reverse-Proxy-Ports kann nicht zugegriffen werden. Das Problem wurde behoben

WBOY
WBOYOriginal
2016-08-08 09:29:203839Durchsuche

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

3

4

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

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:

1

2

3

4

5

String scheme = httpRequest.getScheme();

    String serverName = httpRequest.getServerName();

    int port = httpRequest.getServerPort();

    //服务请求地址

    String requestURI = scheme+"://"+serverName+":"+port+"/ime-server/rest/"+serviceName+"/wmts";

1234 5String scheme = httpRequest.getScheme(); String serverName = httpRequest.getServerName(); int port = httpRequest.getServerPort(); Serviceanfrageadresse String requestURI = scheme+" "+serverName++port+"/ime-server/rest/"+serviceName+

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:

1

2

3

4

5

6

7

8

location /ime-server {

            #root   html;

            #index  index.html index.htm;

            proxy_pass http://ime-server/ime-server;

            proxy_set_header Host $host:$server_port;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }

1 2

3

4

5678 location /ime-server {#root html; #index index.html index.htm; //ime-server/ime-server; proxy_set_header Host $host:$server_port;             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;           Neustart von nginx,./nginx -s reload. Überprüfen Sie anschließend, ob die Proxy-Port-Informationen korrekt sind: Das Obige stellt die Lösung für das Problem vor, dass auf den Nginx-Reverse-Proxy-Port-Domänennamen nicht zugegriffen werden kann, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn