错误:RPC失败;result=22, HTTP code = 413 fatal:远端异常挂机



我得到一个错误时,试图推动我的django代码到git大约100 MB。

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。谁能给我解答?

什么时候得到这个错误?

当您尝试通过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 setting

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

在nginx服务器的情况下,1 Mib的默认大小被应用,所以推入一个大于这个大小的存储库会导致这个错误。

从nginx文档中的client_max_body_size设置:

设置客户端请求体的最大允许大小,在“Content-Length”请求头字段。如果请求中的大小超过配置值,413(请求实体太大)错误返回给客户端。请注意浏览器不能正确显示此错误。设置size为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)连接超时设置

反向代理也可能有关闭连接的连接超时(例如apache中的TimeOutProxyTimeout, ngnix中的proxy_read_timeout)。尝试通过直接推送到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而不是HTTP来推送存储库

最新更新