关于阿里云配置gitlab的记录

说明

想搭建自己的git服务器,采用nginx + gitlab方式,不用gitlab内置nginx,搭建到完成所遇到的一些问题,做记录;

安装

关于gitlab的安装,官网以及百度,google很多安装教程,参考安装;

配置

这里是重点,因为搭建不采用内置ngnix,所以在配置上踩了很多坑;配置文件在/etc/gitlab/gitlab.rb;这里总结下配置步骤:

1.屏蔽内置ngnix

ginx['enable'] = false

2.设置外部访问地址

external_url "https://gitlab.example.com"

3.设置外部服务器用户

由于设置这种代理就是需要外部nginx服务器来访问gitlab服务,gitlab服务运行在自己的用户组下,所以当访问时涉及到权限问题,所以需要加入nginx用户到gitlab服务用户组下,不同的linux系统可能nginx服务启动的用户名不一样,以ubuntu为例为www-data,所以需要查询下自身linux对应nginx的用户。

web_server['external_users'] = ['www-data']

==补充:不进行如上配置,运到访问502,查看log发现failed (XX: Permission denied) while reading upstream 异常;==

4.配置nginx虚拟机

新建配置文件/etc/nginx/site-enable/gitlab-nginx.conf

upstream gitlab-workhorse {
  # 注意:这里可能涉及到不同版本安装的gitlab对应的位置不一样
  server unix:/var/opt/gitlab/gitlab-workhorse/socket;
}

## Normal HTTP host
server {
  # 设置监听端口,这里为8002
  listen 0.0.0.0:8002 default_server;
  listen [::]:8002 default_server;
  # YOUR_SERVER_FQDN 为服务器地址
  server_name YOUR_SERVER_FQDN;
  server_tokens off;
  root /opt/gitlab/embedded/service/gitlab-rails/public;
  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_pass http://gitlab-workhorse;
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章