大牛就是大牛...
最近公司为了并行开发,要把代码提交从svn转到gitlab上,我就开始了我的安装gitlab之路~
一开始我是按照https://www.cnblogs.com/shijunjie/p/8961977.html 这篇博客 在我自己的新服务器上安装的,一切顺利。
乐乐呵呵的就开始了安装我们公司开发环境服务器的gitlab......
我也是按照上面的博客开始安装,
第一个坑:
gitlab-ctl reconfigure时,卡住了。。。
然后就百度了一波卡住的那一行
然后就执行了一条语句,就可以了。
第二个坑:
然后安装完毕后,修改了url和端口号之后就重启了一下。
修改了/etc/gitlab/gitlab.rb 配置文件之后
务必使用
gitlab-ctl reconfigure
gitlab-ctl restart
两条语句来重启,官方文档有介绍(https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab)
然后访问之后 页面显示502
这个gitlab 安装的时候它会自带一个nginx,如果你服务器上已经使用了nginx,就会产生冲突。
我参照网上的各种教程来了一遍,都不管用。
只好求助我们CTO,palapala一阵键盘清脆的响声,问题半个小时就解决了。。。我整了一上午都没解决。。
这个问题的原因我知道,就是gitlab自带的nginx 和 服务器已有的nginx冲突。
解决方法:
1、vim /etc/gitlab/gitlab.rb
2、然后修改和加入
external_url '域名:端口号'
unicorn['port'] = 端口号
注: url的端口号和unicorn 的端口号 要不一致。
cd /usr/local/nginx/conf
vim nginx.conf
加入
# gitlab socket 文件地址
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 端口号; #修改端口号(nginx需要访问的端口号和gitlab.rb中 external_url 端口号保持一致 )
server_name localhost;
server_tokens off; # don't show the version number, a security best practice
root /opt/gitlab/embedded/service/gitlab-rails/public;
client_max_body_size 250m;
#access_log /var/log/gitlab/nginx/gitlab_access.log;
#error_log /var/log/gitlab/nginx/gitlab_error.log;
location / {
try_files $uri $uri/index.html $uri.html @gitlab;
}
location @gitlab {
proxy_read_timeout 300; # Some requests take more than 30 seconds.
proxy_connect_timeout 300; # Some requests take more than 30 seconds.
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
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-Frame-Options SAMEORIGIN;
proxy_pass http://127.0.0.1:端口号; #和gitlab.rb中unicorn['port'] 端口号保持一致
}
location ~ ^/(assets)/ {
root /opt/gitlab/embedded/service/gitlab-rails/public;
expires max;
add_header Cache-Control public;
}
error_page 502 /502.html;
}
加入这样一段配置文件之后,重启nginx,重启gitlab
systemctl restart nginx.service
gitlab-ctl reconfigure
gitlab-ctl restart
这样就解决啦~
真是太坑了。。。浪费我一天时间。
有需要的小伙伴可以参考一下~