为什么这个nginx反向代理configuration为gitlab不起作用

我在Docker上运行Gitlab。 当我试图把Gitlab放在一个Nginx反向代理的后面时,我总是得到404错误,因为在redirect期间URL变得不正确。

当我尝试访问http:// localhost / gitlab时 ,它redirect到http:// localhost / users / sign_in而不是http:// localhost / gitlab / users / sign_in ,最终导致404。

这是我的configuration:

proxy.conf

server { listen 0.0.0.0:80; access_log /var/log/nginx/gitlab_access.log; error_log /var/log/nginx/gitlab_error.log; location /gitlab/ { proxy_pass http://gitlab-ce/; proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; proxy_set_header X-Forwarded-Proto $scheme; 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-Frame-Options SAMEORIGIN; } location /app { proxy_pass http://app/; } } 

泊坞窗,compose.yml

 version: '2' services: app: build: app proxy: build: proxy ports: - "80:80" gitlab-ce: image: gitlab/gitlab-ce:latest volumes: - /srv/gitlab/config:/etc/gitlab - /srv/gitlab/logs:/var/log/gitlab - /srv/gitlab/data:/var/opt/gitlab