环境

  • 操作系统:CentOS 7
  • gitlab版本:14.x

要求

gitlab在私有化部署之后,设置了域名访问,默认只要有网络都可以访问,要求只能部分网络IP或者指定的IP网段才能访问

操作

gitlab私有化部署好之后,默认是自带有Nginx,就通过设置Nginx的相关配置来实现,注意这里不能直接修改gitlab给我们安装的Nginx.conf之类的配置文件,需要修改/etc/gitlab/gitlab.rb这个文件,然后重新配置,gitlab会帮我们修改相关配置 1.查看默认的配置文件是否存在,默认配置文件名:gitlab.rb

ll /etc/gitlab/

2.修改配置文件

vim /etc/gitlab/gitlab.rb

3.找到修改部分,执行2.中的命令以后,按一下键盘:/ (斜杠) ,然后输入:custom_gitlab_server_config 然后回车找到如下

# nginx['custom_gitlab_server_config'] = "location ^~ /foo-namespace/bar-project/raw/ {\n deny all;\n}\n"

建议不要改变原始内容,在这个上面添加新的内容,内容如下:

nginx['custom_gitlab_server_config'] = "location ~* (.*)
{
allow 192.168.1.1;
allow 192.168.3.0/24;
allow 192.168.0.0/16;
deny all;
proxy_cache off;
proxy_pass http://gitlab-workhorse;
root html;
index index.html index.htm;
}"

解释一下

  • allow 192.168.1.1; 代表允许192.168.1.1,这个IP访问
  • allow 192.168.3.0/24; 代表允许192.168.3.0~192.168.3.254,这个IP段访问
  • allow 192.168.0.0/16; 代表允许192.168.※.※(代表星号,shift+8) IP访问
  • deny all; 代表除以上允许之外,禁止其他所有网络访问

下面这几行也放上,官方文档里是让放上,官方文档地址 proxy_cache off; proxy_pass http://gitlab-workhorse; root html; index index.html index.htm; 注意:这个顺序不能随便写,读取顺序会从上往下,如果把deny all;放到第一行,后面的就不起作用了 4.最后重新配置

gitlab-ctl reconfigure

以上处理之后,其他不允许访问的IP访问gitlab就会出现403,只有允许访问的IP才能访问了。

关于IP的建议

在获取想要访问的IP推荐一个网站:https://ip.cn/ 博主在测试从百度直接获取的IP和ip138获取的IP放上去都不行,百般苦恼,最后从这个网站获取的本机IP放上去才行!

另外提醒

如果你的gitlab有使用到gitlab自带的CI/DI自动部署,请务必把装有gitlab的服务器本身IP添加允许访问,不然你会发现,咦,Runner怎么离线了,哈哈哈