错误:RPC 失败; result=22, HTTP code = 413 fatal: 远端意外挂断

Posted

技术标签:

【中文标题】错误:RPC 失败; result=22, HTTP code = 413 fatal: 远端意外挂断【英文标题】:error: RPC failed; result=22, HTTP code = 413 fatal: The remote end hung up unexpectedly 【发布时间】:2015-12-27 20:58:48 【问题描述】:

尝试将我的 django 代码推送到大约 100 MB 的 git 时出现错误。

error: RPC failed; result=22, HTTP code = 413 fatal: The remote end hung up unexpectedly

我尝试了http.postbuffer,还更改了 nginx 和 apache2 设置,添加了client_max_body_size 500m;。但我既不使用任何这些服务器。我只是想上传到 git。谁能给我解决方案?

【问题讨论】:

【参考方案1】:

什么时候会出现此错误?

当您尝试通过 HTTP 推送大型存储库时,通常会发生此错误。

http.postBuffer git 客户端上的设置控制POSTing 某些数据时要使用的缓冲区的最大大小(以字节为单位)。它的默认大小是1 MiB,如果您尝试推送大于此大小的文件,则会收到此错误。

一些可能的解决方案:

1.为http.postbuffer设置设置更高的值

您可以在 git 客户端上为 http.postBuffer 设置更高的值。

# increase the Git buffer size to the largest individual file size of your repo
git config --global http.postBuffer <size_in_MiB> 

2。 Nginx 服务器:

(a) client_max_body_size 设置

它也可能由于默认的反向代理配置设置而发生。一种这样的设置是 client_max_body_size 设置,它设置请求正文的最大允许大小。

对于 nginx 服务器,默认大小为 1 Mib,因此推送大于此大小的存储库会导致此错误。

来自 nginx 文档中的 client_max_body_size setting:

设置客户端请求正文的最大允许大小,在 “Content-Length” 请求头字段。 如果请求中的大小 超过配置的值,出现413 (Request Entity Too Large) 错误 返回给客户端。请注意,浏览器不能 正确显示此错误。将大小设置为0 禁用检查 客户端请求正文大小。

要更改client_max_body_size 设置,请加载nginx.conf 并在http 块中根据您的需要添加具有值的client_max_body_size 设置。您还可以将client_max_body_size 设置为0,这将允许用户推送任何大小的存储库。

# nginx.conf    
client_max_body_size <required_size_in_MiB>; # add this setting in the http block to set a custom size
client_max_body_size 0; # to push repositories of any size

添加此设置后,您需要使用 sudo service nginx reload 重新加载 nginx,然后再次尝试通过 http 推送您的提交。

(b) 连接超时设置

反向代理也可能有关闭连接的连接超时(例如,TimeOutProxyTimeout 在 apache 中,proxy_read_timeout 在 ngnix 中)。尝试通过直接推送到IP:port 来绕过代理。如果这可行,则很可能是代理服务器导致过早断开连接,需要进行调整。

3. Apache 服务器:

您可以设置 LimitRequestBody 设置以增加 HTTP 请求正文的允许限制。

您需要根据httpd.conf 文件中的要求将LimitRequestBody 设置添加到自定义值。将此值设置为0 将允许您推送任何大小的文件。

# httpd.conf
LimitRequestBody <custom_size_in_bytes> # set a custom limit
LimitRequestBody 0 # no limit on the size

4.改用 SSH:

您可以使用SSH 代替 HTTP 来推送存储库。

【讨论】:

以上是关于错误:RPC 失败; result=22, HTTP code = 413 fatal: 远端意外挂断的主要内容,如果未能解决你的问题,请参考以下文章

error: RPC failed; result=22, HTTP code = 413 MiB错误解决

Heroku 部署时出错。错误:RPC 失败; HTTP 504 curl 22 请求的 URL 返回错误:504

git push 错误:RPC 失败;结果 = 56,HTTP 代码 = 0 [关闭]

git push报错:error: RPC failed; result=22, HTTP code = 413

RPC 失败; HTTP 400 curl 22 The requested URL returned error: 400 Bad Request

RPC 失败;结果 = 56,HTTP 代码 = 2008.17 MiB