Uwsgi and Gitlab

- 210 words (1mn)

- dysosmus

Categories: notes

Récemment j’ai du réinstaller Gitlab sur notre bien aimé serveur. Du coup je note ici les configurations pour remplacer Gunicorn par uWSGI pour faire marcher Gitlab.

Note : je suis sous une debian 7 avec uWSGI 1.9.20, nginx 1.4.4 et Gitlab 6-3-stable.

La configuration uWSGI :

  [uwsgi]
  # /home/git/gitlab/conf/gitlab.ini
  app-root     = /home/git/gitlab
  pidfile      = %(app-root)/tmp/pids/uwsgi.pid
  socket       = %(app-root)/tmp/sockets/gitlab.socket
  logto        = %(app-root)/log/uwsgi.log
  log-date     = true

  # si uWSGI est en mode autload vous pouvez omettre de préciser rack
  plugins      = rack

  uid          = gitlab
  gid          = gitlab

  chown-socket = gitlab:gitlab
  chmod-socket = 660

  master       = true
  processes    = 4

  # Rack à nécessite cette option pour fonctionner correctement
  # (http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html)
  post-buffering = 4096

  chdir = %(app-root)

  # Point d'entrée pour rack
  rack = config.ru
  env  = RAILS_ENV=production

La configuration nginx :

   # /etc/nginx/sites-availables/<domaine de gitlab>
   server {
    listen <ip>:<port>;
    server_name <domaine de gitlab>;
    root /home/git/gitlab/public;

    access_log  <access log>;
    error_log   <error log>;

    location / {
      # Le serveur tente d'abord de servir de façon statique le fichier,
      # puis, à défaut, envois une requête à gitlab.
      try_files $uri $uri/index.html $uri.html @gitlab;
    }

    location @gitlab {
      include uwsgi_params;
      # l'option uwsgi_modifier1 permet de préciser à uWSGI
      # qu'il reçoit des requêtes pour une application rack
      # (http://uwsgi-docs.readthedocs.org/en/latest/Protocol.html)
      uwsgi_modifier1 7;
      uwsgi_pass unix:/home/git/gitlab/tmp/sockets/gitlab.socket;
    }
  }

Served by ilotreseau.net Hugo 0.40.2 1b4b49a