在 Linux 上运行 GitLab 时,“限制流量”通常指以下几个层面之一,你可以按需选择:
GitLab 自带 Nginx,可直接配置。
编辑 GitLab 配置:
sudo vim /etc/gitlab/gitlab.rb
添加或修改:
nginx['enable'] = true
# 限制单 IP 下载速度(示例:1MB/s)
nginx['custom_gitlab_server_config'] = "
limit_rate 1m;
"
# 或使用 limit_req 限制请求频率
nginx['custom_gitlab_server_config'] = "
limit_req_zone $binary_remote_addr zone=gitlab_limit:10m rate=10r/s;
server {
limit_req zone=gitlab_limit burst=20 nodelay;
}
"
应用配置:
sudo gitlab-ctl reconfigure
适合限制整个服务器网卡流量。
示例:限制 eth0 为 10Mbps
sudo tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 400ms
查看:
tc qdisc show
删除:
sudo tc qdisc del dev eth0 root
git config --global http.postBuffer 524288000
或使用 proxy + 限速(如 nginx 或 squid)。
puma['worker_processes'] = 2
sidekiq['concurrency'] = 10
sudo gitlab-ctl reconfigure
gitlab_rails['rate_limiting'] = {
enabled: true,
threshold: 100,
interval: 1.minute
}
iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute -j ACCEPT
如果是 Docker:
docker run --memory=2g --cpu-quota=50000 gitlab/gitlab-ce
✅ 最佳实践:
limit_rate 控制下载速度limit_req 防止刷接口tc 控制整机带宽(可选)如果你能补充:
我可以给你更精确的配置示例。