背景:因网络限制需要用nginx将内网的gitlab(Omnibus gitlab)映射到外网,映射方式为,gitlab服务器:192.168.3.12;与外网连通的内网:192.168.3.55(带nginx);外网域名:https:123.com/gilab(随便写的域名,最终nginx把/gilab映射到12机器上)。
此时在3.55上可通过http://192.168.3.12访问gitlab(安装时没有配置相对路径,路径配置的是http://192.168.3.12)。
nginx中location配置
location /gitlab/ {
proxy_pass http://192.168.3.12/;
}
这个时候在外网访问https:123.com/gilab可以进到登陆页面,但是没有样式等信息,登陆后也会报错。打开调试工具会现请求路径全部变成了https:123.com/*** /gitlab不见了。这个时候可以给gitlab增加一个路径,如http://192.168.3.12/gitlab。
配置方式,打开gitlab.rb配置文件,找到extern_url 在后面的路径上增加/gitlab即可
#vim /etc/gitlab/gitlab.rb
编辑完成后记得更新配置和重启,一定要重启服务,不然新路径不生效(我就是忘了重启卡在这了弄了很久)
#gitlab-ctl reconfigure
#gitlab-ctl restart
重启后在192.168.3.55上访问gitlab的地址变成了http://192.168.3.12/gitlab,最后还需要修改一下nginx
location /gitlab/ {
proxy_pass http://192.168.3.12/gitlab/;
#也可以用下面这种方式,和上一个location比少了最后的/
# proxy_pass http://192.168.3.12;
}
这时再在外网访问https:123.com/gilab即可正常使用gitlab。
参考地址:https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-a-relative-url-for-gitlab