Seria útil se você especificasse sua versão nginx (a versão do gitlab, a distribuição do linux e a versão também não prejudicariam).
Eu provavelmente usaria alguns ajustes na sua configuração, desabilitar o redirecionamento e enviar os cabeçalhos para o proxy:
server {
listen 443 ssl;
server_name server01.example.com;
client_max_body_size 40M;
ssl_certificate /etc/nginx/ssl/tlscert.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;
location /gitlab/ {
proxy_pass http://127.0.0.1:9999/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
Se isso não funcionar ( isso dependerá da sua versão nginx ) tente algo com uma reescrita, como:
server {
listen 443 ssl;
server_name server01.example.com;
client_max_body_size 40M;
ssl_certificate /etc/nginx/ssl/tlscert.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;
location /gitlab/ {
rewrite ^/gitlab(/.*)$ $1 break;
proxy_pass http://127.0.0.1:9999/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
Mas eu deixaria o redirecionamento de qualquer forma. Eu acho que isso está causando seus problemas.