GitLab

Материал из K.Wiki
Перейти к: навигация, поиск

Настройки[править]

Как интегрировать GitLab и внешний nginx[править]

Должен быть установлен nginx.

  1. Отредактировать файл настроек /etc/gitlab/gitlab.rb.
    1. Отключить встроенный nginx:
      nginx['enable'] = false
    2. Указать имя пользователя, которое будет использоваться внешним сервером:
      web_server['external_users'] = ['www-data']
  2. Запустить перенастройку
    sudo gitlab-ctl reconfigure
  3. Добавить виртуальный хост в nginx (YOUR_SERVER_FQDN нужно заменить на правильный хост, default_server нужно удалить, если есть другой сервер по-умолчанию):
    ## GitLab
    ##
    ## Lines starting with two hashes (##) are comments with information.
    ## Lines starting with one hash (#) are configuration parameters that can be uncommented.
    ##
    ##################################
    ##        CONTRIBUTING          ##
    ##################################
    ##
    ## If you change this file in a Merge Request, please also create
    ## a Merge Request on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests
    ##
    ###################################
    ##         configuration         ##
    ###################################
    ##
    ## See installation.md#using-https for additional HTTPS configuration details.
    
    upstream gitlab-workhorse {
      server unix://var/opt/gitlab/gitlab-workhorse/socket fail_timeout=0;
    }
    
    map $http_upgrade $connection_upgrade_gitlab {
        default upgrade;
        ''      close;
    }
    
    ## Normal HTTP host
    server {
      ## Either remove "default_server" from the listen line below,
      ## or delete the /etc/nginx/sites-enabled/default file. This will cause gitlab
      ## to be served if you visit any address that your server responds to, eg.
      ## the ip address of the server (http://x.x.x.x/)n 0.0.0.0:80 default_server;
      listen 0.0.0.0:80 default_server;
      listen [::]:80 default_server;
      server_name YOUR_SERVER_FQDN; ## Replace this with something like gitlab.example.com
      server_tokens off; ## Don't show the nginx version number, a security best practice
    
      ## See app/controllers/application_controller.rb for headers set
    
      ## Individual nginx logs for this GitLab vhost
      access_log  /var/log/nginx/gitlab_access.log;
      error_log   /var/log/nginx/gitlab_error.log;
    
      location / {
        client_max_body_size 0;
        gzip off;
    
        ## https://github.com/gitlabhq/gitlabhq/issues/694
        ## Some requests take more than 30 seconds.
        proxy_read_timeout      300;
        proxy_connect_timeout   300;
        proxy_redirect          off;
    
        proxy_http_version 1.1;
    
        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;
        proxy_set_header    Upgrade             $http_upgrade;
        proxy_set_header    Connection          $connection_upgrade_gitlab;
    
        proxy_pass http://gitlab-workhorse;
      }
    
      error_page 404 /404.html;
      error_page 422 /422.html;
      error_page 500 /500.html;
      error_page 502 /502.html;
      error_page 503 /503.html;
      location ~ ^/(404|422|500|502|503)\.html$ {
        root /opt/gitlab/embedded/service/gitlab-rails/public;
        internal;
      }
    
    }
  4. Обновить настройки nginx:
    nginx reload

Ссылки: