在企業(yè)開發(fā)中我們有時會需要搭建自己的gitlab服務器史飞,而通常我們的服務器同時是web服務器尖昏,使用了nginx作為靜態(tài)服務器來進行反向代理,這種情況下构资,在服務器上安裝gitlab-ce版后抽诉,由于gitlab-ce自帶nginx,而且自帶的nginx會把80端口占用吐绵,導致我們自己的nginx服務失效迹淌,本文我對過程進行了詳細的列出以供參考;
nginx 的源碼安裝可以參考這篇文章
https://blog.csdn.net/wireless911/article/details/83994953
gitlab-ce版本的安裝可以參考這篇文章進行安裝
https://www.cnblogs.com/restran/p/4063880.html
nginx反向代理gitlab服務器
- 找到gitlab的配置文件拦赠,配置文件的路徑:/etc/gitlab/gitlab.rb
vim /etc/gitlab/gitlab.rb
- 由于nginx端口沖突巍沙,所以修改gitlab下nginx的監(jiān)聽端口為8040(這里的監(jiān)聽端口可以設置成任意你想要的端口,當然不能使用80 或者已經被占用的端口)
nginx['listen_port'] = 8040
- 修改外部訪問gitlab的external_url地址(這里的地址設置為服務器的地址即可)
external_url 'http;//192.168.9.110'
- 配置外部Nginx服務器(配置文件位置/etc/nginx/nginx.conf)
upstream gitlab{
# 7.x 版本在此位置
# server unix:/var/opt/gitlab/gitlab-rails/tmp/sockets/gitlab.socket;
# 8.0 位置
server unix://var/opt/gitlab/gitlab-rails/sockets/gitlab.socket;
}
server{
listen 80;
# 此域名是提供給最終用戶的訪問地址 (即你經過域名解析過的地址荷鼠,例:gitlab.example.com)
server_name 域名;
location / {
# 這個大小的設置非常重要句携,如果 git 版本庫里面有大文件,設置的太小允乐,文件push 會失敗矮嫉,根據情況調整
client_max_body_size 50m;
proxy_redirect off;
#以下確保 gitlab中項目的 url 是域名而不是 http://git,不可缺少
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 反向代理到 gitlab 內置的 nginx
proxy_pass http://gitlab;
index index.html index.htm;
}
}
- 重啟外部nginx牍疏,重啟gitlab服務
sudo /usr/local/nginx/sbin/nginx -s reload
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
重啟完成后就可以正常訪問了蠢笋,完成了nginx反向代理gitlab服務,如果無法訪問鳞陨,接著執(zhí)行第六步昨寞;
- 權限配置
# 訪問會報502.可能是nginx用戶無法訪問gitlab用戶的socket文件,在這里將gitlab文件權限修改掉就好了;
sudo chmod 777 -R /var/opt/gitlab/gitlab-rails