在 CentOS 上限制 GitLab 的访问速度(限速),常见做法有下面几种,按「最简单 → 最专业」说明:
GitLab 本身支持 限流(Rate Limiting),适合防止爆破、API 滥用。
sudo vim /etc/gitlab/gitlab.rb
# 限制单 IP 请求频率(默认已开启)
gitlab_rails['rate_limit_requests_per_period'] = 10
gitlab_rails['rate_limit_period_in_seconds'] = 60
# 限制 Git HTTP 克隆速度(GitLab 15+)
gitlab_rails['git_rate_limit'] = 100 # 单位:KB/s(示例)
⚠️ 注意:GitLab 原生 不支持精确带宽限速,更多是针对请求频率。
sudo gitlab-ctl reconfigure
GitLab 自带 Nginx,可以直接限速。
sudo vim /etc/gitlab/gitlab.rb
添加:
nginx['enable'] = true
nginx['custom_gitlab_server_config'] = "
limit_req_zone $binary_remote_addr zone=gitlab_limit:10m rate=10r/s;
"
nginx['custom_gitlab_server_config'] = "
location / {
limit_req zone=gitlab_limit burst=20 nodelay;
}
"
sudo gitlab-ctl reconfigure
✅ 适合:
SSH 不走 Nginx,限速复杂,一般不建议。
使用 Nginx 限速即可(见上)
如果你想 限制整个服务器出口带宽:
yum install wondershaper -y
wondershaper eth0 10000 10000
(下载 / 上传 10Mbps)
❌ 缺点:
| 需求 | 推荐方式 |
|---|---|
| 防止 API 爆破 | GitLab 限流 |
| 限制 clone 速度 | Nginx limit_req |
| 整个服务器限速 | tc / wondershaper |
| 精确带宽控制 | 反向代理 + Nginx |
如果你能说明:
我可以给你 精确可用的配置示例。