问题描述:
前些日子在使用Gitlab创建新的仓库,创建完成以后本地进行克隆,对仓库进行初始化处理,然后再上传Gitlab远程仓库。中间由于使用的是SourceTree版本管理软件输了几次密码以后,发现Gitlab访问出现“Forbidden”空白页,重启以后发现依然不能解决问题。
解决办法:
通过查阅资料,发现可能存在两种情况:
1、并发导致的访问被拒绝(Gitlab使用rack_attack做了并发访问的限制)
主要可以通过三种方式解决:添加IP白名单、加大并发阈值、直接关闭Rack Attack,下面介绍一种通过加大并发阈值和添加IP白名单的方式来解决问题。
- 修改Gitlab的配置文件,一般在gitlab根目录/config/gitlab.rb,我这里因为使用rpm安装,所以配置文件路径:vim /etc/gitlab/gitlab.rb
- 找到如下代码,取消注释,并作如下修改-保存:
-
gitlab_rails['rack_attack_git_basic_auth'] = { 'enabled' => true, 'ip_whitelist' => ["127.0.0.1","Gitlab服务器IP公网地址"], 'maxretry' => 200, #增加这个字段的值 'findtime' => 60, 'bantime' => 3600 }
- 重新配置Gitlab:gitlab-ctl reconfigure
- 重新访问Gitlab网址即可
2、多次输入密码,触发了Gitlab的防爆破,解决办法删除Redis里面的相关数据,执行如下命令:
/opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/redis.socket keys '*' | grep 'rack::attack' | xargs /opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/redis.socket DEL
然后重新访问Gitlab网址即可