You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自托管GitLab推送大量/大文件报remote end hung up unexpectedly解决方法

问题原因

Ubuntu自托管GitLab推送大文件触发fatal: the remote end hung up unexpectedly、减少推送文件量就恢复的故障,是多层大小/超时限制共同导致的。GitLab管理面板仅提供仓库单文件上传的基础限制,内置Web服务、Git底层传输、反向代理的相关限制默认不在面板暴露,很容易遗漏。

解决步骤(基于Ubuntu环境Omnibus方式安装的GitLab,90%以上自托管场景均为该安装方式)
    1. 修改GitLab主配置文件
      编辑配置文件/etc/gitlab/gitlab.rb,调整以下配置项,不存在就直接新增:
    # 配置Git单次推送的最大体积,单位为字节,示例为500MB,按需调整,设为0代表无限制
    gitlab_rails['git_max_size'] = 524288000
    # 配置Git操作超时时间,默认10秒过短,大文件传输容易超时断连,单位为秒,示例为10分钟
    gitlab_rails['git_timeout'] = 600
    # 配置GitLab内置Nginx允许的最大请求体体积,值需大于等于git_max_size对应大小
    nginx['client_max_body_size'] = '500m'
    
    保存退出后执行配置重载命令生效:
    sudo gitlab-ctl reconfigure
    
    1. 独立反向代理配置调整(仅当你没有用GitLab内置Nginx、自行部署Nginx/Caddy等反向代理时操作)
      如果用Nginx做反向代理,在对应站点的server配置块中添加如下配置:
    client_max_body_size 500m;
    
    保存后执行配置校验与重载:
    sudo nginx -t
    sudo systemctl reload nginx
    
    如果用其他反向代理,找到对应「最大请求体大小」配置项,调整为和GitLab服务端一致的阈值即可。
    1. 本地Git客户端配置调整
      本地Git默认的HTTP传输缓存上限较低,也会触发大文件推送断连,在本地待推送的仓库目录下执行如下命令,调整缓存大小和服务端阈值匹配:
    git config http.postBuffer 524288000
    
注意事项
  • 如果需要推送的单个文件大小超过100MB,不建议长期靠调大普通推送阈值解决,优先启用Git LFS追踪大文件,避免仓库体积过快膨胀,后续拉取、克隆操作卡顿。
  • 如果调整配置后仍报错,直接查看GitLab内置Nginx错误日志定位拦截点,日志路径为/var/log/gitlab/nginx/error.log,如果出现client intended to send too large body记录,说明Nginx层的大小限制没有正确重载生效。

内容的提问来源于stack exchange,提问作者CyberNoble

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 14:06:27