error: RPC falló; resultado = 22, código HTTP = 413 fatal: el extremo remoto colgó inesperadamente

Me aparece un error al intentar insert mi código django en git, que es de alnetworkingedor de 100 MB.

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

http.postbuffer y también cambié la configuration de nginx y apache2, agregué client_max_body_size 500m; . Pero no estoy usando ninguno de esos serveres. Solo bash upload a git. ¿alguien puede darme la solución?

¿Cuándo se obtiene este error?

Este error generalmente ocurre cuando intenta insert un repository grande a través de HTTP.

http.postBuffer configuration de http.postBuffer en tu cliente de git controla el tamaño máximo en bytes del búfer que se utilizará cuando se POSTing algunos datos. Su tamaño pnetworkingeterminado es 1 MiB y si intentas empujar un file mayor que este, obtienes este error.

Algunas soluciones posibles:

1. Establecer un valor más alto para la configuration de http.postbuffer

Puede establecer un valor más alto para la configuration de http.postBuffer en su cliente de git.

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

2. Servidores Nginx:

(a) configuration de client_max_body_size

También puede ocurrir debido a la configuration pnetworkingeterminada de configuration de proxy inverso . Una de estas configuraciones es la configuration client_max_body_size , que establece el tamaño máximo permitido de un cuerpo de request.

En el caso de un server nginx, se aplica un tamaño pnetworkingeterminado de 1 Mib por lo que presionar un repository mayor que este provoca este error.

Desde la configuration client_max_body_size en nginx docs:

Establece el tamaño máximo permitido del cuerpo de request del cliente, especificado en el campo de encabezado de request “Content-Length” . Si el tamaño en una request excede el valor configurado, el error 413 (entidad de request demasiado grande) se devuelve al cliente. Tenga en count que los browseres no pueden mostrar este error correctamente. Establecer el tamaño en 0 desactiva la comprobación del tamaño del cuerpo de la request del cliente.

Para cambiar la configuration de client_max_body_size , cargue su nginx.conf y agregue la configuration client_max_body_size con el valor según sus necesidades en el bloque http . También puede establecer la configuration de client_max_body_size en 0 lo que permitirá a los usuarios enviar repositorys de cualquier tamaño.

 # nginx.conf client_max_body_size <requinetworking_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 

Después de agregar esta configuration, necesita volver a cargar nginx utilizando el sudo service nginx reload y luego intentar nuevamente enviar su confirmación a través de http.

(b) Configuración de time de espera de connection

El proxy inverso también puede tener un time de espera de connection que cierre la connection (por ejemplo, TimeOut o ProxyTimeout en apache, proxy_read_timeout en ngnix). Pruebe omitiendo el proxy presionando directamente a IP:port . Si esto funciona, es muy probable que el server proxy esté causando la desconnection temprana y necesite ser ajustado.

3. Servidor Apache:

Puede establecer la configuration LimitRequestBody para boost el límite permitido de un cuerpo de request HTTP.

Necesita agregar la configuration LimitRequestBody a un valor personalizado según sus requisitos en el file httpd.conf . Establecer este valor en 0 le permitirá enviar files de cualquier tamaño.

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

4. Uso de SSH en su lugar:

Puede usar SSH lugar de HTTP para enviar el repository.