В настоящее время я борюсь с маршрутизацией установки 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;