Git Push失?。篐TTP 413 Request Entity Too Large的問(wèn)題排查和完整解決方法
引言
在使用 Git 推送包含較大編譯產(chǎn)物的項(xiàng)目時(shí),你是否遇到過(guò) HTTP 413 Request Entity Too Large 錯(cuò)誤?這通常并不是 Git 的問(wèn)題,而是 Web 服務(wù)器(如 Nginx)拒絕接收大體積請(qǐng)求。本文將通過(guò)一個(gè)完整案例,演示如何使用 curl 工具驗(yàn)證服務(wù)器限制,最終通過(guò)寶塔面板修改 Nginx 配置解決問(wèn)題,實(shí)現(xiàn)大文件 Git 推送成功。適用于使用 Gitblit、Gitea 或任何基于 Nginx 部署的私有 Git 服務(wù)環(huán)境。
一、問(wèn)題描述
在使用 Git 推送一個(gè)包含編譯產(chǎn)物的倉(cāng)庫(kù)時(shí),推送失敗,報(bào)錯(cuò)如下:
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 send-pack: unexpected disconnect while reading sideband packet fatal: the remote end hung up unexpectedly
Git GUI (SourceTree) 中顯示:
POST git-receive-pack (287021804 bytes) error: RPC failed; HTTP 413

二、初步分析
HTTP 413 代表“請(qǐng)求體過(guò)大”,通常是服務(wù)端擁有上傳大小限制??赡艿脑从袃蓚€(gè):
- Git 服務(wù)本身限制 (Gitblit/Gitea/GitLab)
- Web 服務(wù)器如 Nginx 或 Apache 進(jìn)行的前置限制
為了確認(rèn)問(wèn)題所在,我們進(jìn)行下面的演示性測(cè)試。
三、演示測(cè)試: curl 模擬上傳
步驟1: 創(chuàng)建大文件 (300MB)
在 PowerShell 中執(zhí)行:
fsutil file createnew bigfile.test 314572800
步驟2: 使用 curl.exe 模擬 POST 上傳
curl.exe -v -X POST http://域名/ -H "Expect:" --data-binary "@bigfile.test"
結(jié)果:
HTTP/1.1 413 Request Entity Too Large Server: nginx
確認(rèn)限制來(lái)自 Nginx,Git 本身無(wú)問(wèn)題。

步驟3: 創(chuàng)建小文件 (1KB)
fsutil file createnew smallfile.test 1024
重復(fù) curl POST 測(cè)試,結(jié)果成功,顯示 Gitblit 網(wǎng)頁(yè)內(nèi)容,證明小文件能正常處理。

四、解決方案:修改 Nginx 配置 (寶塔面板)
操作步驟
- 打開(kāi)寶塔面板后臺(tái) (http://你的IP:8888)
- 點(diǎn)擊左側(cè)「軟件商店」,找到 Nginx
- 點(diǎn)擊「配置修改」或「配置文件」
- 找到
http {塊,加入:
client_max_body_size 512m; # 允許最大上傳體積為 512MB
- 保存配置
- 回到 Nginx 設(shè)置界面,重載配置或重啟 Nginx
實(shí)際配置示意圖

http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 512m;
sendfile on;
keepalive_timeout 60;
...
}
五、重試 Git 推送
配置重載后,再次執(zhí)行 Git push,推送包大小達(dá) 274MB,已成功,問(wèn)題解決。

六、總結(jié)與建議
| 操作步驟 | 結(jié)果 |
|---|---|
| curl 模擬上傳 bigfile.test | 報(bào) 413,確認(rèn) Nginx 限制 |
| curl 上傳 smallfile.test | 成功返回 Gitblit 頁(yè)面 |
| 修改 Nginx 配置 | 重載后 push 成功 |
建議:
- 盡量不要推送編譯產(chǎn)物 (.dll/.lib/.pdb)
- 使用
.gitignore或 Git LFS 管理大文件 - 一旦推送無(wú)法成功,優(yōu)先檢查 Nginx/選項(xiàng)配置
以上就是Git Push失?。篐TTP 413 Request Entity Too Large的問(wèn)題排查和完整解決方法的詳細(xì)內(nèi)容,更多關(guān)于Git Push失敗:HTTP 413 Request Entity Too Large的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
反向傳播BP學(xué)習(xí)算法Gradient?Descent的推導(dǎo)過(guò)程
這篇文章主要為大家介紹了反向傳播BP學(xué)習(xí)算法-Gradient?Descent的推導(dǎo)過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
git中實(shí)現(xiàn)修改提交信息(版本號(hào))
本文介紹了如何修改Git中的提交信息,包括修改最近一次提交和任意提交的信息,首先,使用git commit --amend命令可以快速修改最近一次的提交信息,此外,若需修改任意提交,可以通過(guò)啟動(dòng)交互式變基,使用reword選項(xiàng)重新編輯提交信息2024-10-10
12種實(shí)現(xiàn)301網(wǎng)頁(yè)重定向方法的代碼實(shí)例(含Web編程語(yǔ)言和Web服務(wù)器)
這篇文章主要介紹了11種實(shí)現(xiàn)301網(wǎng)頁(yè)重定向方法的代碼實(shí)例,文中包含9種編程語(yǔ)言和3種WEB服務(wù)器配置方法,共計(jì)12種,需要的朋友可以參考下2014-07-07
30個(gè)提高Web程序執(zhí)行效率的好經(jīng)驗(yàn)分享
30個(gè)提高Web程序執(zhí)行效率的好經(jīng)驗(yàn)分享,需要的朋友可以參考下。2011-10-10
如何通過(guò)memberlist庫(kù)實(shí)現(xiàn)gossip管理集群及集群數(shù)據(jù)交互問(wèn)題
這篇文章主要介紹了通過(guò)memberlist庫(kù)實(shí)現(xiàn)gossip管理集群以及集群數(shù)據(jù)交互,本文介紹了memberlist庫(kù)的簡(jiǎn)單用法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07

