1 votes

Comment router correctement une installation Gitlab dans un sous-répertoire via un proxy inverse SSL?

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é?

1voto

rabejens Points 173

Le contenu suivant était manquant dans site-config:

proxy_set_header X-Forwarded-Ssl on;

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X