Git Push失敗:HTTP 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失敗:HTTP 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)文章
解決vs?code通過(guò)remote-ssh遠(yuǎn)程到ubuntu頻繁掉線問(wèn)題
這篇文章主要介紹了vs?code通過(guò)remote-ssh遠(yuǎn)程到ubuntu頻繁掉線問(wèn)題解決方法,這個(gè)解決方案只要用自己安裝的Git替換掉windows本身的Git工具,需要的朋友可以參考下2022-09-09
導(dǎo)致爬蟲(chóng)無(wú)法使用的原因探討解決
隨著互聯(lián)網(wǎng)的普及和發(fā)展,爬蟲(chóng)技術(shù)也越來(lái)越多地被應(yīng)用到各個(gè)領(lǐng)域,然而,在實(shí)際使用中,爬蟲(chóng)可能會(huì)遇到各種問(wèn)題導(dǎo)致無(wú)法正常工作,本文將探討導(dǎo)致爬蟲(chóng)無(wú)法使用的原因,并給出相應(yīng)的解決方法2023-10-10

