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