2017-01-27 2 views
2

Ich habe einen Nginx-Server auf 80 in einem Docker-Container zu hören.Nginx: Port während Redirect beibehalten

Innerhalb der Nginx-Konfiguration muss ich in bestimmten Situationen eine Umleitung zu einer statischen Seite durchführen.

rewrite^/foobar.html redirect; 

der Benutzer den Behälter jeden Port mit der Andockfensters Befehlszeile spezifiziert ausführen können (als Referenz, kann sie den Behälter auf dem Port 8000 und intern Nginx verwenden noch 80 belichten).

Jetzt, wenn Nginx die URL umleitet, wird der Port durch den internen von Nginx anstelle des von Docker verwendeten ersetzt.

Ich habe versucht, eine Reihe von Header zu setzen, aber sie helfen nicht:

proxy_set_header X-Forwarded-Host $host:$server_port; 
proxy_set_header X-Forwarded-Server $host; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_pass http://app_server; 

rewrite^/foobar.html redirect; 

Es ist noch zu 80 umleitet.

Wie kann ich Nginx mitteilen, dass der vom Benutzer verwendete Port beibehalten wird?

Antwort

4

Also, ich habe eine Lösung gefunden, so kann ich die Umleitung wie folgt angeben:

rewrite^$scheme://$http_host/foobar.html redirect; 

Dies wird den Hafen erhalten.