Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/06/2018, à 08:29

notezik

Gitlab : clone impossible via http(s) avec apache erreur 500 ou 503

Bonjour à toutes et tous,

J'ai posté mon problème sur le forum de gitlab, mais sans réponse. Alors, j'essaie ici.
Donc je n'arrive pas à cloner un projet via http. Ça semble être un problème commun mais aucune des solutions que je trouve ne fonctionne.

    
$ git clone https://gitlab.EXAMPLE.org/Maxime/nbodypy.git
Clonage dans 'nbodypy'...
fatal: unable to access 'https://gitlab.EXAMPLE.org/Maxime/nbodypy.git/': The requested URL returned error: 500

J'ai essayé les solutions que j'ai trouvé sur le web et en particulier ici mais sans succès.

Ma configuration

Apache `gitlab.conf`:

<VirtualHost *:80>
  ServerName gitlab.EXAMPLE.org
  ServerSignature Off
  
  RewriteEngine On
  RewriteCond %{HTTPS} off
  
  #RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
  RewriteRule .* unix:/var/opt/gitlab/gitlab-workhorse/socket|http://gitlab.EXAMPLE.org%{REQUEST_URI} [P,QSA,NE] # i've tried both

  RewriteCond %{SERVER_NAME} =gitlab.EXAMPLE.org
  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:443>   SSLEngine on
    #strong encryption ciphers only
    #see ciphers(1) http://www.openssl.org/docs/apps/ciphers.html
    SSLProtocol all -SSLv2
    SSLHonorCipherOrder on
    SSLCipherSuite "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS"
    Header add Strict-Transport-Security: "max-age=15768000;includeSubdomains"
    SSLCompression Off
    SSLEngine On

    ServerName	gitlab.EXAMPLE.org
    ServerSignature Off
    ProxyPreserveHost On
    # Ensure that encoded slashes are not decoded but left in their encoded state.
    # http://doc.gitlab.com/ce/api/projects.html#get-single-project
    AllowEncodedSlashes NoDecode
    <Location />
	# New authorization commands for apache 2.4 and up
	# http://httpd.apache.org/docs/2.4/upgrading.html#access
	Require all granted
	#Allow forwarding to gitlab-workhorse
	ProxyPassReverse http://localhost:9191
	ProxyPassReverse http://gitlab.EXAMPLE.org/
    </Location>
    # Apache equivalent of nginx try files
    # http://serverfault.com/questions/290784/what-is-apaches-equivalent-of-nginxs-try-files
    # http://stackoverflow.com/questions/10954516/apache2-proxypass-for-rails-app-gitlab
    RewriteEngine on
    #Forward all requests to gitlab-workhorse except existing files like error documents
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_URI} ^/uploads/.*
    RewriteRule .* http://localhost:9099%{REQUEST_URI} [P,QSA,NE]
    RequestHeader set X_FORWARDED_PROTO 'https'
    RequestHeader set X-Forwarded-Ssl on
    # needed for downloading attachments
    DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
    #Set up apache error documents, if back end goes down (i.e. 503 error) then a maintenance/deploy page is thrown up.
    ErrorDocument 404 /404.html
    ErrorDocument 422 /422.html
    ErrorDocument 500 /500.html
    ErrorDocument 502 /502.html
    ErrorDocument 503 /503.html
    # It is assumed that the log directory is in /var/log/httpd.
    # For Debian distributions you might want to change this to
    # /var/log/apache2.
    LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
    ErrorLog /var/log/apache2/gitlab_error.log
    CustomLog /var/log/apache2/gitlab_forwarded.log common_forwarded
    CustomLog /var/log/apache2/gitlab_access.log combined env=!dontlog
    CustomLog /var/log/apache2/gitlab.log combined
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/EXAMPLE.org/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/EXAMPLE.org/privkey.pem
</VirtualHost>

gitlab.rb

external_url 'http://gitlab.EXAMPLE.org'
gitlab_workhorse['enable'] = true            
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_umask'] = 000    
gitlab_workhorse['listen_addr'] = "localhost:9191"    
gitlab_workhorse['dir'] = "/var/opt/gitlab/gitlab-workhorse"

user['username'] = "gitlab"
user['group'] = "gitlab"

unicorn['listen'] = 'localhost'
unicorn['port'] = 9099

web_server['external_users'] = ['www-data']#[]         
web_server['username'] = 'apache' #'gitlab-www'       
web_server['group'] = 'apache' #'gitlab-www' 

nginx['enable'] = false

Comments


- J'ai un certificat fonctionnel généré par letsencrypt
- J'avais une installation gitolite avant donc j'ai changé l'utilisateur par défaut de GitLab (git) en l'utilisateur gitlab.
- Évidemment, chaque fois que j'ai modifié le gitlab.rb, j'ai exécuté 

$ gitlab-ctl reconfigure
$ gitlab-ctl restart

- J'ai installé la distribution omnibus (gitlab-ee) sous Ubuntu 17.10 que je viens de passer en 18.04 (sans modifications de comportement, malgré la mise à jour de gitlab)

deb https://packages.gitlab.com/gitlab/gitlab-ee/ubuntu/ bionic main
deb-src https://packages.gitlab.com/gitlab/gitlab-ee/ubuntu/ bionic main

- Le clone en utilisant ssh fonctionne parfaitement.

Hors ligne

#2 Le 14/07/2018, à 11:24

notezik

Re : Gitlab : clone impossible via http(s) avec apache erreur 500 ou 503

help ?

Hors ligne

#3 Le 14/07/2018, à 12:01

krodelabestiole

Re : Gitlab : clone impossible via http(s) avec apache erreur 500 ou 503

https://doc.ubuntu-fr.org/apache2?redirect=1#erreur_500

Il s'agit d'une erreur fatale du serveur, qui peut être par exemple liée à une erreur de syntaxe dans un fichier .htaccess.

Consultez le log d'erreur de votre hôte virtuel pour en savoir plus.

À priori si apache se lance bien c'est qu'il n'y a pas d'erreur de syntaxe dans les fichiers de config.
vérifie quand même avec :

sudo apache2ctl -t

Après ta config est quand même particulièrement tordue (c'est indispensable le proxy ?)

jette surtout un oeil au log d'erreur d'apache : /var/log/apache2/error.log

Hors ligne

#4 Le 14/07/2018, à 13:10

krodelabestiole

Re : Gitlab : clone impossible via http(s) avec apache erreur 500 ou 503

krodelabestiole a écrit :

Après ta config est quand même particulièrement tordue (c'est indispensable le proxy ?)

ah ouais, gitlab ce est développé en ruby, donc j'imagine que oui si tu veux utiliser apache...
le gitlab.conf est tiré d'une doc officielle ?

Hors ligne

#5 Le 14/07/2018, à 13:14

krodelabestiole

Re : Gitlab : clone impossible via http(s) avec apache erreur 500 ou 503

déjà tu peux essayer de cloner depuis ton serveur en local :

git clone http://localhost:9191/Maxime/nbodypy.git

si tu as aussi un problème c'est qu'il se situe au niveau de ruby / gitlab.
si pas de problème alors le soucis vient plus probablement de la config d'apache.

Hors ligne