在使用 Git 推送包含较大编译产物的项目时,你是否遇到过 HTTP 413 Request Entity Too Large 错误?这通常并不是 Git 的问题,而是 Web 服务器(如 Nginx)拒绝接收大体积请求。本文将通过一个完整案例
|
在使用 Git 推送包含较大编译产物的项目时,你是否遇到过 HTTP 413 Request Entity Too Large 错误?这通常并不是 Git 的问题,而是 Web 服务器(如 Nginx)拒绝接收大体积请求。本文将通过一个完整案例,演示如何使用 curl 工具验证服务器限制,最终通过宝塔面板修改 Nginx 配置解决问题,实现大文件 Git 推送成功。适用于使用 Gitblit、Gitea 或任何基于 Nginx 部署的私有 Git 服务环境。 一、问题描述在使用 Git 推送一个包含编译产物的仓库时,推送失败,报错如下:
Git GUI (SourceTree) 中显示:
二、初步分析HTTP 413 代表“请求体过大”,通常是服务端拥有上传大小限制。可能的源有两个:
为了确认问题所在,我们进行下面的演示性测试。 三、演示测试: curl 模拟上传步骤1: 创建大文件 (300MB)在 PowerShell 中执行:
步骤2: 使用 curl.exe 模拟 POST 上传
结果:
确认限制来自 Nginx,Git 本身无问题。
步骤3: 创建小文件 (1KB)
重复 curl POST 测试,结果成功,显示 Gitblit 网页内容,证明小文件能正常处理。
四、解决方案:修改 Nginx 配置 (宝塔面板)操作步骤
实际配置示意图
五、重试 Git 推送配置重载后,再次执行 Git push,推送包大小达 274MB,已成功,问题解决。
六、总结与建议
建议:
|
2022-04-23
2023-04-23
2024-04-08
2024-11-15
2022-10-16