解决 Gitlab 并发过高引起403 forbidden 的问题

Gitlab 的 rack-attack 机制是为了限制某个ip对 Gitlab 进行基本认证失败请求的次数,防止恶意攻击和密码破解,通过限制每个ip每分钟内尝试的基本认证的次数来实现,如果某个ip进行的基本认证失败请求的次数超过这个限制,则这个ip的其他的所有的请求都会返回403。

解决办法

Gitlab 的 rack-attack 机制可以通过配置白名单的方式防止误触发防爆破机制;我们也推荐在生产环境下使用此种方式解决此问题,在 Rainbond 平台 Gitlab 组件中添加环境变量将访问次数过多的ip添加进白名单即可。

通过以下环境变量对 rack-attack 相关参数进行配置。

参数 默认值 概述
RACK_ATTACK_ENABLED true 启用rack-attack机制
RACK_ATTACK_WHITELIST 127.0.0.1 白名单,添加多个地址时使用逗号分隔
RACK_ATTACK_MAXRETRY 10 限制请求次数
RACK_ATTACK_FINDTIME 60 60秒后重置每个IP的身份验证尝试计数器
RACK_ATTACK_BANTIME 3600 尝试过多身份验证后将IP禁止一小时

环境变量添加后 更新重启 Gitlib 组件即可生效。