nginx proxy_pass rewrite of response header location
Add a trailing slash to your proxy_pass
target.
Update : The OP didn't precise the vhost was accepting https
. As the scheme is forwarded to the backend server with additionnal headers, then an issue occurs since proxy_redirect default;
orders nginx to expect http scheme by default when rewriting Location
headers in upstream replies, instead of https.
So, this had to be changed explicitely to a more generic form (the trailing slash is still necessary) :
location /gitlab/ {
proxy_pass http://127.0.0.1:9000/;
proxy_redirect $scheme://$host:$server_port/ /gitlab/;
}