当前位置: 首页 > article >正文

Git Push 失败:HTTP 413 Request Entity Too Large

Git Push 失败:HTTP 413 Request Entity Too Large 问题排查

在使用 Git 推送包含较大编译产物的项目时,你是否遇到过 HTTP 413 Request Entity Too Large 错误?这通常并不是 Git 的问题,而是 Web 服务器(如 Nginx)拒绝接收大体积请求。本文将通过一个完整案例,演示如何使用 curl 工具验证服务器限制,最终通过宝塔面板修改 Nginx 配置解决问题,实现大文件 Git 推送成功。适用于使用 Gitblit、Gitea 或任何基于 Nginx 部署的私有 Git 服务环境。


一、问题描述

在使用 Git 推送一个包含编译产物的仓库时,推送失败,报错如下:

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 代表“请求体过大”,通常是服务端拥有上传大小限制。可能的源有两个:

  • Git 服务本身限制 (Gitblit/Gitea/GitLab)
  • Web 服务器如 Nginx 或 Apache 进行的前置限制

为了确认问题所在,我们进行下面的演示性测试。


三、演示测试: curl 模拟上传

步骤1: 创建大文件 (300MB)

在 PowerShell 中执行:

fsutil file createnew bigfile.test 314572800

步骤2: 使用 curl.exe 模拟 POST 上传

curl.exe -v -X POST http://域名/ -H "Expect:" --data-binary "@bigfile.test"

结果:

HTTP/1.1 413 Request Entity Too Large
Server: nginx

确认限制来自 Nginx,Git 本身无问题。

在这里插入图片描述

步骤3: 创建小文件 (1KB)

fsutil file createnew smallfile.test 1024

重复 curl POST 测试,结果成功,显示 Gitblit 网页内容,证明小文件能正常处理。

在这里插入图片描述


四、解决方案:修改 Nginx 配置 (宝塔面板)

操作步骤

  1. 打开宝塔面板后台 (http://你的IP:8888)

  2. 点击左侧「软件商店」,找到 Nginx

  3. 点击「配置修改」或「配置文件」

  4. 找到 http { 块,加入:

    client_max_body_size 512m;  # 允许最大上传体积为 512MB
    
  5. 保存配置

  6. 回到 Nginx 设置界面,重载配置或重启 Nginx

实际配置示意图

在这里插入图片描述

http {include       mime.types;default_type  application/octet-stream;client_max_body_size 512m;sendfile        on;keepalive_timeout  60;...
}

五、重试 Git 推送

配置重载后,再次执行 Git push,推送包大小达 274MB,已成功,问题解决。

在这里插入图片描述


六、总结与建议

操作步骤结果
curl 模拟上传 bigfile.test报 413,确认 Nginx 限制
curl 上传 smallfile.test成功返回 Gitblit 页面
修改 Nginx 配置重载后 push 成功

建议:

  • 尽量不要推送编译产物 (.dll/.lib/.pdb)
  • 使用 .gitignore或 Git LFS 管理大文件
  • 一旦推送无法成功,优先检查 Nginx/选项配置

相关文章:

Git Push 失败:HTTP 413 Request Entity Too Large

Git Push 失败:HTTP 413 Request Entity Too Large 问题排查 在使用 Git 推送包含较大编译产物的项目时,你是否遇到过 HTTP 413 Request Entity Too Large 错误?这通常并不是 Git 的问题,而是 Web 服务器(如 Nginx&am…...

第10章 网络与信息安全基础知识

网络概述 多模光纤的特点:成本低,宽芯线,聚光好,耗散大,低效,用于低速度、短距离的通信。 单模光纤的特点:成本高,窄芯线,需要激光源,耗散小,高效…...

GO语言学习(九)

GO语言学习(九) 上一期我们了解了实现web的工作中极为重要的net/http抱的细节讲解,大家学会了实现web开发的一些底层基础知识,在这一期我来为大家讲解一下web工作的一个重要方法,:使用数据库,现…...

go 访问 sftp 服务 github.com/pkg/sftp 的使用踩坑,连接未关闭(含 sftp 服务测试环境搭建)

前言 最近在使用 sftp 服务时,被告知发起了海量的连接,直接把服务器搞崩,ip 被封了。 这是啥情况? golang 写的代码,我就正常的访问 sftp 服务,连接使用过后也都关闭了,咋会出现连接一直连着…...

Linux多线程(二)之进程vs线程

文章目录 Linux进程VS线程进程和线程进程的多个线程共享关于进程线程的问题 重谈地址空间Linux线程周边的概念 Linux进程VS线程 进程和线程 进程是资源分配的基本单位(进程是承担分配系统资源的基本实体) 执行流也是资源!线程是进程内部的执…...

【MogDB】测试 ubuntu server 22.04 LTS 安装mogdb 5.0.11

测试 ubuntu server 22.04 LTS 安装mogdb 5.0.11 使用的操作系统镜像是 https://releases.ubuntu.com/22.04/ubuntu-22.04.5-live-server-amd64.iso 装好操作系统后,把root登录打开了,方便后续操作。 测试过程 使用官方命令在线安装ptk rootubuntu22…...

AI时代新词-数字孪生(Digital Twin)

一、什么是数字孪生(Digital Twin)? 数字孪生(Digital Twin)是一种通过创建物理实体的虚拟副本,并利用数据和算法来模拟、分析和优化物理实体的性能和行为的技术。数字孪生结合了物联网(IoT&am…...

【HW系列】—web常规漏洞(文件上传漏洞)

文章目录 一、简介二、危害三、文件检测方式分类四、判断文件检测方式五、文件上传绕过技术六、漏洞防御措施 一、简介 文件上传漏洞是指Web应用程序在处理用户上传文件时,未对文件类型、内容、路径等进行严格校验和限制,导致攻击者可上传恶意文件&…...

如何实现 C/C++ 与 Python 的通信

C/C 与 Python 的通信可以通过多种方式实现,如使用 C API、Ctypes、Cython、SWIG、Python.h 或基于共享库的调用等。其中,使用 Ctypes 方式最为简便,适合快速调用已有的 C 函数库。例如,通过将 C 代码编译为动态链接库&#xff08…...

python炸鱼船

import pygame, random # 加载库 from pygame.locals import * pygame.init() pygame.display.set_caption("炸渔船") canvas pygame.display.set_mode((700, 500)) bgpygame.image.load("bg.png") bgpygame.transform.scale(bg,(700,500))class Hero(py…...

使用AutoKeras2.0的AutoModel进行结构化数据回归预测

1、First of All: Read The Fucking Source Code import autokeras as ak import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error# 生成数据集 np.random.seed(42) x np.random.rand(1000, 10) # 生成1…...

好用但不常用的Git配置

参考文章 文章目录 tag标签分支新仓库默认分支推送 代码合并冲突处理默认diff算法 tag标签 默认是以字母顺序排序,这会导致一些问题,比如0.5.101排在0.5.1000之后。为了解决这个问题,我们可以把默认排序改为数值排序 git config --global t…...

ULVAC VWR-400M/ERH 真空蒸发器 Compact Vacuum Evaporator DEPOX (VWR-400M/ERH)

ULVAC VWR-400M/ERH 真空蒸发器 Compact Vacuum Evaporator DEPOX (VWR-400M/ERH)...

P1068 [NOIP 2009 普及组] 分数线划定

题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的 150% 划定,即如果计划录取 m 名志愿者&#xf…...

PPT连同备注页(演讲者模式)一块转为PDF

首先,进入创建PDF/XPS: 然后进入选项: 发布选项-发布内容里选备注页: 导出的原始结果是这样的: 这个时候裁剪一下,范围为所有页面: 最终结果: 如果导出不选“备注页”而是只勾选“包…...

第三十二天打卡

作业:参考pdpbox官方文档中的其他类,绘制相应的图,任选即可 1. 安装并导入库 确保安装与文档版本一致的 pdpbox(此处以 0.3.0 为例): bash 复制 下载 pip install pdpbox0.3.0 导入所需库&#xff1a…...

项目三 - 任务8:实现词频统计功能

本项目旨在实现一个词频统计功能,通过读取文本文件并利用Java编程技巧处理和分析文本数据。首先,使用BufferedReader逐行读取文件内容,然后通过String.split(" ")方法将每行文本分割成单词数组。接下来,采用HashMap来存…...

MongoDB 快速整合 SpringBoot 示例

1.添加依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spr…...

2025.05.22-得物春招机考真题解析-第二题

&#x1f4cc; 点击直达笔试专栏 &#x1f449;《大厂笔试突围》 &#x1f4bb; 春秋招笔试突围在线OJ &#x1f449; 笔试突围OJ 02. 魔法书页重排 问题描述 A先生是一位魔法师&#xff0c;他有一本古老的魔法书&#xff0c;书中有 n n n 页&#xff0c;每页都刻有一个魔…...

ollama list模型列表获取 接口代码

ollama list模型列表获取 接口代码 curl http://localhost:11434/v1/modelscoding package hcx.ollama;/*** ClassName DockerOllamaList* Description TODO* Author dell* Date 2025/5/26 11:31* Version 1.0**/import java.io.BufferedReader; import java.io.InputStreamR…...

OPC Client第5讲(wxwidgets):初始界面的事件处理;按照配置文件初始化界面的内容

接上一讲&#xff0c;即实现下述界面的事件处理代码&#xff1b;并且按照配置文件初始化界面的内容&#xff08;三、&#xff09; 事件处理的基础知识&#xff0c;见下述链接五、 OPC Client第3讲&#xff08;wxwidgets&#xff09;&#xff1a;wxFormBuilder&#xff1b;基础…...

什么是BFC,如何触发BFC,BFC有什么特性?

理解 BFC指的是块级格式化上下文,处于BFC内部的盒子与外界互不影响 触发条件 position:absolute/fixed都会产生bfcdisplay:inline-block,table,flex等float:left/right 浮动也会产生bfchtml根元素也是bfc bfc的特性 属于同一个BFC下的盒子会垂直排列属于同一个BFC下的两个…...

python做题日记(9)

第二十一题 第二十一题是合并两个有序链表&#xff0c;合并后的链表仍然需要保持有序&#xff0c;因为在合并之前已经是两个有序链表&#xff0c;因此在合并时只需要遍历比较两个链表中的下一结点数值&#xff0c;将其中较小的一个结点添加到新的列表中。如果有任何一个链表已经…...

Leetcode 3557. Find Maximum Number of Non Intersecting Substrings

Leetcode 3557. Find Maximum Number of Non Intersecting Substrings 1. 解题思路2. 代码实现 题目链接&#xff1a;3557. Find Maximum Number of Non Intersecting Substrings 1. 解题思路 这一题就是一个比较直接的动态规划的题目&#xff0c;我们只需要考察每一个位是否…...

【C++进阶篇】初识哈希

哈希表深度剖析&#xff1a;原理、冲突解决与C容器实战 一. 哈希1.1 哈希概念1.2 哈希思想1.3 常见的哈希函数1.3.1 直接定址法1.3.2 除留余数法1.3.3 乘法散列法&#xff08;了解&#xff09;1.3.4 平方取中法&#xff08;了解&#xff09; 1.4 哈希冲突1.4.1 冲突原因1.4.2 解…...

Spring Boot——自动配置

目录 1.bean加载方式 1.1XML方式声明bean 1.2 xml 注解方式声明bean 1.3通过Configuration和Bean 1.4使用Import注解 1.5使用上下文对象在容器初始化完毕后注入bean 1.6使用ImportSelector接口 1.7实现ImportBeanDefinitionRegistrar接口 1.8bean加载方式&#xff08;…...

免费轻量便携截图 录屏 OCR 翻译四合一!提升办公效率

各位软件小达人们&#xff0c;今天来给大伙唠唠VeryCapture这款软件&#xff01; 先说说它的核心功能。这软件有个超厉害的多模态屏幕捕捉系统&#xff0c;它就像个全能小能手&#xff0c;把截图、录屏、OCR文字识别、翻译这些功能全集成在一起啦&#xff01;截图有6种模式&a…...

使用 Vuex 实现用户注册与登录功能

引言 在构建具有用户认证功能的应用时&#xff0c;Vuex 可以用来管理用户的登录状态和相关信息。以下是如何使用 Vuex 来实现用户注册与登录功能的概述。 &#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端…...

进程通信(管道,共享内存实现)

01. 进程通信简介 进程通信工具分为数据传输工具和共享内存两类。这里我们讨论进程通信工具(IPC)里面的管道、system V和共享内存。在理解阶层通信之间&#xff0c;我们先了解用户空间缓冲区和内核空间缓冲区两个概念。 1.1 用户空间缓冲区 存在于用户态的进程用户空间&#…...

电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测

电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测 目录 电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测预测效果基本描述程序设计参考资料 预测效果 基本描述 电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测 运行环境Matlab2023b及以上&#xff0c;锂电池剩余寿…...