Назад | Перейти на главную страницу

Как правильно направить установку Gitlab в подкаталог через обратный прокси-сервер SSL?

В настоящее время я борюсь с маршрутизацией установки Gitlab через обратный прокси-сервер SSL, чтобы Gitlab отвечал по пути https: // myserver / git.

Я использую sameersbn/gitlab Образ Docker и веб-сервер nginx в качестве обратного прокси.

Без SSL я использую следующую конфигурацию среды для Gitlab:

Мой site-config для nginx выглядит так:

server {
        listen 80 default_server;
        server_name myserver;


    location /git {
        proxy_pass      http://gitlab/git;

        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;
        proxy_set_header X-Forwarded-Proto  $scheme;
    }

}

Обратный прокси-сервер также является контейнером Docker, который связывает мой контейнер Gitlab как имя хоста. gitlab.

Это работает - собираюсь http: // myserver / git перенаправляет меня на страницу входа.

Однако при переходе на SSL:

и

server {
    listen 443 ssl;
    server_name myserver;
    ssl_certificate /etc/ssl/certs/server.crt;
    ssl_certificate_key /etc/ssl/certs/server.key;

    location /git {
        proxy_pass      http://gitlab/git;

        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;
        proxy_set_header X-Forwarded-Proto  https;
    }

}

не работает. При звонке https://myserver/git, он пытается перенаправить на http://localhost.my.company.domain.com/git/users/sign_in которого не существует.

Когда я использую curl -k -L -vvv https://myserver/git Я вижу, что nginx перенаправляет меня на http://localhost/git/users/sign_in.

Что мне не хватает?

Следующее отсутствовало в site-config:

proxy_set_header X-Forwarded-Ssl on;