温馨提示×

centos gitlab如何限速

小樊
46
2026-09-18 00:59:17
栏目: 智能运维

CentOS 上限制 GitLab 的访问速度(限速),常见做法有下面几种,按「最简单 → 最专业」说明:


一、使用 GitLab 自带限流(推荐,最简单)

GitLab 本身支持 限流(Rate Limiting),适合防止爆破、API 滥用。

1️⃣ 修改 GitLab 配置

sudo vim /etc/gitlab/gitlab.rb

2️⃣ 常见限速配置示例

# 限制单 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 原生 不支持精确带宽限速,更多是针对请求频率。

3️⃣ 重新加载配置

sudo gitlab-ctl reconfigure

二、使用 Nginx 限速(最常用 ✅)

GitLab 自带 Nginx,可以直接限速。

1️⃣ 编辑 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;
"

2️⃣ 对具体路径限速(如 git clone)

nginx['custom_gitlab_server_config'] = "
    location / {
        limit_req zone=gitlab_limit burst=20 nodelay;
    }
"

3️⃣ 重新配置

sudo gitlab-ctl reconfigure

✅ 适合:

  • 防止单 IP 疯狂 clone
  • API 被刷

三、限制 Git 传输带宽(SSH / HTTP)

✅ SSH 方式(不推荐限速)

SSH 不走 Nginx,限速复杂,一般不建议。

✅ HTTP 方式(推荐)

使用 Nginx 限速即可(见上)


四、系统级限速(tc / wondershaper)

如果你想 限制整个服务器出口带宽

1️⃣ 安装

yum install wondershaper -y

2️⃣ 限制网卡

wondershaper eth0 10000 10000

(下载 / 上传 10Mbps)

❌ 缺点:

  • 影响所有服务
  • 不区分 GitLab 用户

五、推荐方案总结

需求 推荐方式
防止 API 爆破 GitLab 限流
限制 clone 速度 Nginx limit_req
整个服务器限速 tc / wondershaper
精确带宽控制 反向代理 + Nginx

如果你能说明:

  • GitLab 版本
  • 使用 HTTP 还是 SSH
  • 想限制「请求频率」还是「带宽」

我可以给你 精确可用的配置示例

0