访问gitlab报502错误
的有关信息介绍如下:Redhat7安装gitlab-ce-11.1.4-ce.0.el7.x86_64这个版本后访问出现502,问题分析与解决方法
启动gitlab:gitlab-ctl start
浏览器访问(IP地址为安装gitlab机器的地址):http://10.19.206.119:8081
报错502,如图
检查报错原因:gitlab-rake gitlab:check,发现配置文件/opt/gitlab/embedded/service/gitlab-shell/config.yml有报错
查看/opt/gitlab/embedded/service/gitlab-shell/config.yml文件:
vi/opt/gitlab/embedded/service/gitlab-shell/config.yml
出现图信息,注意红框里面的内容,意思是:gitlab_url应该以斜杠结尾
而我们发现,改配置文件gitlab_url却没有以斜杠结尾,问题找到了
开始解决问题,编辑配置文件/opt/gitlab/embedded/service/gitlab-shell/config.yml在端口号8081后面加上斜线“/”,重新加载配置执行命令gitlab-ctl reconfigure,即可临时解决此问题,但实践后发现,执行gitlab-ctl reconfigure后/opt/gitlab/embedded/service/gitlab-shell/config.yml文件会被还原,所以第二次执行gitlab-ctl reconfigure之前要重新加上斜杠。
执行gitlab-ctl reconfigure后/opt/gitlab/embedded/service/gitlab-shell/config.yml文件会被还原,后面又得重新去加斜杠,这个问题可能是此版本的bug,要修复这个bug就得去修改代码
经过复杂又费时的代码相关性分析,最终发现相关bug代码在文件:/opt/gitlab/embedded/cookbooks/gitlab/recipes/itlab-shell.rb里面,具体位置在第58行
第58行修改前:
api_url ||= "http://#{node['gitlab']['unicorn']['listen']}:#{node['gitlab']['unicorn']['port']}#{node['gitlab']['unicorn']['relative_url']}"
修改后(替换端口、最后加上斜杠):
api_url ||= "http://#{node['gitlab']['unicorn']['listen']}:#{node['gitlab']['gitlab-rails']['gitlab_port']}#{node['gitlab']['unicorn']['relative_url']}/"
最后重新配置、重启
gitlab-ctl reconfigure
gitlab-ctl restart
这样就可以彻底解决gitlab这个因为bug导致的报错了