nginx halten, port-Nummer, wenn Sie eine 301-Umleitung
Ich versuche, zu kollabieren, eine zweite Marke für eine web-app in die ersten Marken und verwenden Sie 301-Umleitungen umleiten alle verbleibenden Verkehr. Der server läuft in einer Vagrant box-Weiterleitung auf port 8001. Ich möchte haben:
Statt https://local-dev-url:8001/foo/(nichts) 301 zu https://local-dev-url:8001/(nichts)
Statt https://local-dev-url:8001/adminfoo/(nichts) 301 zu https://local-dev-url:8001/admin/(nichts).
Hier ist, was ich habe:
location ~ /foo/?(.*)$ {
return 301 $1/;
}
location ~ /adminfoo/?(.*)$ {
return 301 admin/$1/;
}
location /{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Authorization $http_authorization;
proxy_set_header X-Scheme $scheme;
proxy_pass http://127.0.0.1:5000;
proxy_redirect http://$scheme://;
}
location /admin/{
alias /hostonly/path/to/admin/stuff/;
}
Jedoch, statt der Umleitung https://local-dev-url:8001/foo/ zu https://local-dev-url:8001/ es ist 301ing zu https://local-dev-url// statt. (Keine port-Nummer, zusätzlichen Schrägstrich.) Ich habe gesehen, Antworten, hart-code der URL der Umleitung, aber da ich die Arbeit mit einer Menge von anderen devs, und wir alle haben einzigartige lokale dev-URLs, die nur konsistente Teil ist der :8001 port-Nummer.
Gibt es eine Möglichkeit zum konfigurieren der 301 arbeiten wie gewünscht?
- Was port ist dieser server lauscht auf? Sind Sie auf der Weiterleitung von 8001 bis 80?
- port 443 nicht 80.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn
nginx
ist nicht lauscht auf port 8001, kann es nicht wissen, welcher port zu verwenden, in der Umleitung. Sie müssen angeben, es ausdrücklich:Den
$http_host
variable besteht aus dem Hostnamen und port, der von der ursprünglichen Anforderung. Sehen dieses Dokument für details.docker
. Das gleiche Konzept gilt auch hier.nginx
im inneren des Containers ist das hören auf port80
und diedocker
container port weitergeleitet wird, songinx
verwenden80
wenn umgeleitet wird.Für mich Bearbeiten Sie die folgenden Zeilen in
proxy.conf
zu schauen, wie dieser, war der trick: