环境
- 操作系统:CentOS 7
- gitlab版本:14.x
要求
gitlab在私有化部署之后,设置了域名访问,默认只要有网络都可以访问,要求只能部分网络IP或者指定的IP网段才能访问
操作
gitlab私有化部署好之后,默认是自带有Nginx,就通过设置Nginx的相关配置来实现,注意这里不能直接修改gitlab给我们安装的Nginx.conf之类的配置文件,需要修改/etc/gitlab/gitlab.rb这个文件,然后重新配置,gitlab会帮我们修改相关配置 1.查看默认的配置文件是否存在,默认配置文件名:gitlab.rb
代码语言:javascript复制ll /etc/gitlab/
2.修改配置文件
代码语言:javascript复制vim /etc/gitlab/gitlab.rb
3.找到修改部分,执行2.中的命令以后,按一下键盘:/ (斜杠) ,然后输入:custom_gitlab_server_config 然后回车找到如下
代码语言:javascript复制# nginx['custom_gitlab_server_config'] = "location ^~ /foo-namespace/bar-project/raw/ {n deny all;n}n"
建议不要改变原始内容,在这个上面添加新的内容,内容如下:
代码语言:javascript复制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.最后重新配置
代码语言:javascript复制gitlab-ctl reconfigure
以上处理之后,其他不允许访问的IP访问gitlab就会出现403,只有允许访问的IP才能访问了。
关于IP的建议
在获取想要访问的IP推荐一个网站:https://ip.cn/ 博主在测试从百度直接获取的IP和ip138获取的IP放上去都不行,百般苦恼,最后从这个网站获取的本机IP放上去才行!
另外提醒
如果你的gitlab有使用到gitlab自带的CI/DI自动部署,请务必把装有gitlab的服务器本身IP添加允许访问,不然你会发现,咦,Runner怎么离线了,哈哈哈