默認情況下,gitlab使用自帶的Nginx,占用80端口,這樣就與系統原本安裝的Nginx沖突。導致其中一個nginx無法啟動;
解決方案:
禁用gitlab自帶Nginx 並把 UNIX套接字 更改為 TCP端口
禁用捆綁的Nginx
vim /etc/gitlab/gitlab.rb
將 nginx['enable'] = true 修改為 nginx['enable'] = false 並去掉注釋 (前邊的#)
允許gitlab-workhorse監聽TCP(默認端口設置為8891),編輯/etc/gitlab/gitlab.rb:
gitlab_workhorse['listen_network'] = "tcp" gitlab_workhorse['listen_addr'] = "127.0.0.1:8891" //這個端口號一會和Nginx代理的端口號要一致
#訪問域名,域名請換成自己的實際域名
external_url 'http://39.1.1.113:8890'
gitlab_rails['trusted_proxies'] = ['39.1.1.113']
#gitlab 數據存放位置
# git_data_dir='/alidata/gitdata'
git_data_dirs({
"default" => {
"path" => "/alidata/gitdata"
}
})
#gitlab 附件上傳位置
#gitlab_rails['uploads_directory'] = "/data/gitlab/uploads"
#gitlab 環境協議及訪問地址
## 該地址將用在ngx 的 upstream 配置中,很重要,網上示例大多都寫成了 server unix:/var/opt/gitlab/gitlab-workhorse/socket fail_timeout=0;實際報ngx 的 502 Bad Gateway 錯誤
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "127.0.0.1:8891"
#擴展WEB服務(指現有nginx的)的LINUX啟動用戶,請根據實際環境配置
web_server['external_users'] = ['root']
#關閉自帶的ngx
nginx['enable'] = false
重啟gitlab服務 使更改生效。
gitlab-ctl reconfigure && gitlab-ctl restart
通過系統原本安裝的Nginx反代以便提供訪問
$ vim /usr/local/nginx/conf/vhost/gitlab.conf
# 為原Nginx新建一個gitlab的配置文件
server {
listen 8890;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://127.0.0.1:8891; #這里與前面設置過的端口一致
}
}
systemctl restart nginx 或者 service nginx restart 重啟
