Je lutte actuellement pour router une installation Gitlab à travers un proxy inverse SSL pour que Gitlab réponde à l'URL suivante : https://myserver/git.
J'utilise l'image Docker sameersbn/gitlab
et un serveur web nginx comme proxy inverse.
Sans SSL, j'utilise la configuration d'environnement suivante pour Gitlab :
- GITLAB_PORT: 80
- GITLAB_RELATIVE_URL_ROOT: /git
- GITLAB_HOST: myserver
Mon fichier de configuration site-config
pour nginx ressemble à ceci :
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;
}
}
Le proxy inverse est également un conteneur Docker qui lie mon conteneur Gitlab en tant qu'hôte gitlab
.
Cela fonctionne - aller sur http://myserver/git me redirige vers la page de connexion.
Cependant, lorsque je passe à SSL :
- GITLAB_PORT: 443
- GITLAB_RELATIVE_URL_ROOT: /git
- GITLAB_HOST: myserver
- GITLAB_HTTPS: true
- SSL_SELF_SIGNED: true
et
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;
}
}
ne fonctionne pas. Lorsque j'appelle https://myserver/git
, il essaie de rediriger vers http://localhost.my.company.domain.com/git/users/sign_in
qui n'existe pas.
Quand j'utilise curl -k -L -vvv https://myserver/git
je vois que nginx me redirige vers http://localhost/git/users/sign_in
.
Qu'est-ce que j'ai manqué?