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 重载配置

完美解决!!!