0%

Gitlab之403 Forbidden前世今生

环境

公司的GIT环境一直是用Gitlab跑在阿里云的Docker环境中的,Gitlab的配置并没有做更改,然而今天发现突然报Forbidden而且还时好时坏。通过查看官方文档【Rack Attack】发现可能是项目太多并发太高触发了IP屏蔽

解决方案

根据官方的文档【Rack Attack】【IP whitelist】可有如下三种方法解决:

  1. 添加IP白名单
  2. 扩大每个IP HTTP authentication次数
  3. 直接关闭Rack Attack

实践

  1. 添加IP白名单

步骤:

  • vi /etc/gitlab/gitlab.rb
  • 查找rack_attack_git_basic_auth
  • gitlab_rails['rack_attack_git_basic_auth']取消注释
  • 修改ip_whitelist白名单将gitlab部署主机IP地址加入
    'ip_whitelist' => ["127.0.0.1","172.16.7.21"],
  • 最后执行gitlab-ctl reconfigure重载配置

在添加白名单后发现问题依然存在,于是在上述完成后继续第二种方式

  1. 扩大每个IP HTTP authentication次数

步骤:

  • maxretry调整为200

最后配置如下:

1
2
3
4
5
6
7
gitlab_rails['rack_attack_git_basic_auth'] = {
'enabled' => true,
'ip_whitelist' => ["127.0.0.1","172.16.7.21"],
'maxretry' => 200,
'findtime' => 60,
'bantime' => 3600
}

再次执行gitlab-ctl reconfigure重载配置

完美解决!!!

我就想试试,没别的意思!