Ich habe eine Anwendung mit Swagger aktiviert localhost:8080/swagger/
.
Ich brauche eine Weiterleitung localhost:80
zur tatsächlichen Swagger-URL, also localhost:8080/swagger/
richte ich einen Nginx-Reverse-Proxy ein:
server {
listen 80;
server_name=_;
location / {
proxy_pass http://localhost:8080/swagger/;
proxy_redirect off;
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;
}
}
Wenn ich also eingebe, localhost:80
erhalte ich den Code 301 und werde weitergeleitet zu localhost:80/swagger/index.html
. Aber ich brauche den Port 8080
. Warum ignoriert Nginx den Port im Proxy-Pass?
Antwort1
Sie können die Abhördirektive für den Serverblock, der auf Port 80 lauscht, so ändern, dass auch die Portnummer enthalten ist:
listen 80 default_server;
Dadurch lauscht Nginx auf Port 80 und leitet den Verkehr an http://localhost:8080/swagger/ weiter, während die Portnummer in der URL beibehalten wird.