说明
想搭建自己的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;
}
}