三个思路解决413 Request Entity Too Large报错处理

Nginx报错413 Request Entity Too Large的客户端请求体限制 在Web开发中,Nginx作为高性能的Web服务器和反向代理服务器,常遇到413 Request Entity Too Large错误。该错误通常由Nginx默认请求实体大小限制(1MB)或未正确配置client_max_body_size指令引起。解决方案包括在Nginx配置文件的http、server或location块中调整client_max_body_size值,并重启Nginx服务。此外,还需检查PHP配置(如post_max_size和upload_max_filesize)以确保与Nginx 阅读详情
AI摘要

本文介绍了解决Nginx文件上传大小限制的问题,提供了三种解决方案:调整Nginx配置、添加友好错误页面及使用JavaScript前端验证。

  最近一个项目当中,要求上传图片,并且限制图片大小,虽然在laravel当中已经添加了相关的表单验证来阻止文件过大的上传,然而当提交表单时,还没轮到laravel处理,nginx就先报错了。当你仔细看报错页面时,你会发现有nginx版本信息,经过分析,这报错是因为nginx的默认上传文件大小配置client_max_body_size只有2MB, 基于nginx验证比laravel验证要早,想要友好报错而不是直接显示413 Request Entity Too Large,那么就有三个思路去解决。

   思路一:修改nginx配置

   这是最简单的一个做法,着报错原因是nginx不允许上传配置过大的文件,那么件把nginx的上传大小配置调高就好。

    1、打开nginx主配置文件nginx.conf,一般在/usr/local/nginx/conf/nginx.conf这个位置,找到http{}段并修改以下内容:

client_max_body_size 2m;
   当中的2m修改成你需要的允许文件大小。
   2、修改后,测试nginx配置是否正确
/usr/local/nginx/sbin/nginx -t
 3、测试配置正确后,重启nginx使配置生效 
/etc/init.d/nginx restart
注意:要是以php运行的话,这个大小client_max_body_size要和php.ini中的如下值的最大值差不多或者稍大,这样就不会因为提交数据大小不一致出现错误。
post_max_size = 2M
upload_max_filesize = 2M

当中的2m修改成你需要的允许文件大小。把当中的2m修改成你第一步设置的大小。

 

   思路二:修改添加友好报错页面

 思路一虽然简单,但是不一定能过项目测试那一关,项目测试就要求不要看到413 Request Entity Too Large这样显示错误,所以我们只好添加友好报错页面咯。
  1、编辑一个简单的htm作为静态友好页面
(注意html文件乱码请用<meta http-equiv="Content-Type" content="text/html; charset=utf-8">)
2、更改nginx.conf在http定义区域加入:
 fastcgi_intercept_errors on; 
3、nginx的网站conf配置中的server 定义区域加入: 
error_page 413 /413.htm;  
(注意此处413与/413.htm之间不要用等号,否则返回状态码为200而不是413,同时尽量不要 http://www.xxx.com/404.html出错则会跳过该页面) 
4、测试nginx配置是否正确
/usr/local/nginx/sbin/nginx -t
5、如果上一步成功重启nginx 
  /etc/init.d/nginx restart

   

 思路三:表单提交之前先用JS判断并且阻止表单提交

  思路二虽然比思路一有进步了一些,但是提醒还是跳转页面了,这样的用户体验并不会好到哪里去,所以最终想到了思路三。上文已经说过,这413报错是来自后端nginx的,nginx的判断虽然比PHP还要早,但是我们可以直接从前端处理呀!想到这里,实现并不难了。可以添加文件上传事件判断,如果文件超过限制的大小,那么就弹出警告框并让提交按钮失效,如果文件没有超过限制大小,就提示大小合适,并且把之前的按钮失效状态取消掉。
   简单的HTML代码:
                <form action="" method="post" enctype="multipart/form-data">                  
                    <div class="form-group">
                        <label for="picture">文章展示图片(800KB内):</label>
                        <input id="picture" name="picture" type="file"/>
                    </div>
                        <button type="submit" id="submit" class="am-btn am-btn-success"><span class="am-icon-send"></span>
                            发布
                        </button>
                    </p>
                </form>

  JS代码:
 
  $('#picture').bind('change', function () {
            if (this.files[0].size / 1024 / 1024 > 0.8){
                value = this.files[0].size/1024;
                alert('该文件大小是 ' + value .toFixed(0)  + "KB,已超过大小限制,请修改!");
                document.getElementById("submit").disabled=true;
                document.getElementById("submit").innerHTML='非法图片内容';
            }else{
                alert('该文件可以提交!');
                document.getElementById("submit").disabled=false;
                document.getElementById("submit").innerHTML='提交';
            }
        });

总结:其实三个思路是按照时间顺序来写的,在实际项目中最终的功能实现也是更新换代才有了最后的结果。不过当有这样类似的经验,下次遇到这样的弯路就省掉,同时会让自己的处理问题的方式更加成熟。





Nginx报错`413 Request Entity Too Large`的客户端请求体限制 本文介绍了Nginx服务器出现413 Request Entity Too Large错误的常见原因及解决方法。该错误通常由客户端请求体超过Nginx默认1MB限制引发,可能因配置不当或未生效导致。解决方法包括修改nginx.conf或站点配置文件中的client_max_body_size参数,设置适当大小(如10M/100M),并在http/server/location块中灵活配置。修改后需通过nginx -t检查语法,并执行nginx -s reload重新加载配置。文章还提供了错误排查表格和针对文 阅读详情

相关推荐

.NET Core WebApi 文件上传下载避坑指南:从413到断点续传

multipart/form-data 是 Web 文件上传的基础协议,通过 boundary 分隔请求体,支持流式写入。.NET Core WebApi 用 IFormFile 封装了解析逻辑,小文件走内存、大文件落临时文件,但生产环境常遇到 Kestrel 请求体限制导致的 413 错误,以及下载时中文文件名乱码、Range 断点续传失效、路径穿越等隐患。理解这三层限制的配置关系,是稳定支撑文件服务的前提。控制器下载需关注 Content-Disposition 与 RFC 5987 编码,私有文件建议

ciya3282的博客 322

Nginx出现“ 413 (499 502 404) Request Entity Too Large”错误解决方法

1.Nginx413错误的排查:修改上传文件大小限制 在使用上传POST一段数据时,被提示413 Request Entity Too Large,应该是nginx限制了上传数据的大小。 解决方法就是 打开nginx主配置文件nginx.conf,一般在/usr/local/nginx/conf/nginx.conf这个位置,找到http{}段,修改或者添加:client_max_bod

etjnety的专栏 5万+

【土壤普查实战】Python+ArcGIS随机森林模型一键生成土壤类型栅格图

本文详细介绍了如何利用Python和ArcGIS结合随机森林模型实现土壤类型栅格图的自动化生成,大幅提升土壤普查效率。通过环境准备、数据预处理、模型构建与调优等关键步骤,帮助用户掌握从样本点生成到最终栅格图输出的完整流程,适用于大面积区域或样本点较多的土壤分类任务。

weixin_29229989的博客 218

413 Request Entity Too Large

413 Request Entity Too Large

weixin_47162914的博客 2万+

详解从无人机倾斜实景三维建模→模型修复→成果网络发布展示分享全流程

1、倾斜实景三维建模软件:CC(Smart3D)软件2、实景三维模型网页在线发布展示、分享平台:图新地球网页端(Wish3D·Earth平台)图新地球网页端(Wish3D·Earth平台)是基于 WebGL技术研发的国产实景三维模型Web端发布展示平台,可实现TB级倾斜实景三维数据快速加载,支持多种格式的三维模型,如OSGB实景模型、OBJ人工模型、SKP人工模型、RVT格式BIM模型等,同时支持模型单体化、三维模型测量分析、水面特效、日照分析等特殊效果呈现,此外也可以根据您的需要进行本地化部署级功能定制。

GISWorld3D的博客 4376

UE4虚拟现实实习总结---蓝图中的常用交互事件|人物行走|物体移动|动态触发|材质改变

这周是ue4实习周,老师给我们的任务就是基于中学物理和化学实验的虚拟实验室,要有交互事件,后期可以链接vr手柄进行操作。 但是实习开始老师影都没了,全靠自己学习。感觉自己学习了不少东西,这里就来总结一下!顺便感叹一下,ue4好玩又强大! 以下主要介绍蓝图中的几种交互事件1.新建游戏角色并且进行角色行走旋转,2.如何控制物体移动旋转,3.如何控制物体材质动态变化 大家可以举一反三,作出更好的作品 1.新建游戏角色并且进行角色行走旋转 步骤 在刚刚新建的文件夹中鼠标右击新建蓝图类,然后分别创建以下:chara

weixin_43902063的博客 6121

解决 413 Request Entity Too Large

问题:413 Request Entity Too Large 记录一次413 Request Entity Too Large解决的问题 1.对于有经验的开发着看见这个错误第一反应就是服务器的上传大小设置的不对那么修改服务器上传大小 对于nginx的配置有三个地方可以设置, 解决413的正常途径 分别是 http,server,location 根据实际情况设置具体的大小, ...

资深架构师分享:深入剖析软件架构,探讨云计算、微服务、大数据等前沿技术。分享实践经验,促进技术交流,共同构建卓越系统。 9万+

Vivado IP核综合失败别慌:除了打补丁,这个TCL命令也能救急(以Video Frame Buffer为例)

本文详细解析了Vivado IP核综合失败的排查方法,特别是针对Video Frame Buffer Read IP的常见问题。从补丁安装到深入分析DCP文件生成机制,再到使用强大的TCL命令`foreach ip_in_proj [get_ips] {compile_c [get_ips $ip_in_proj]}`强制重编译,提供了一套完整的解决方案。帮助开发者快速定位并解决IP核综合失败问题,确保项目顺利进行。

weixin_30892889的博客 424

Nginx报错 HTTP 413 Request Entity Too Large(Payload Too Large)解决方案

上传文件时,请求参数过大,导致超出服务端限制。 Nginx默认最大能够上传1MB文件,打开nginx.conf在http{}中,找到server{}设置: client_max_body_size 30m;(配置客户端请求实体最大值) client_body_buffer_size 128k;(配置请求体缓存区大小)

花生福的博客 1万+

【论文笔记】Beyond Low-frequency Information in Graph Convolutional Networks

文章目录1. Abstract2. Introduction低频和高频信号作用FAGCN怎么设计3. An Experimental Investigation4. Model4.1 filter定义4.2 Aggregation4.3 Problems of signal combination4.4 Spatial vision of FAGCN4.5 系数αijG\alpha_{i j}^{G}αijG​4.6 模型整体框架FAGCN的表达能力实验 本文发表在AAAI-21上 论文地址:https:

Running Snail 5602

学好超几何分布的核心公式,破解双色球!

彩票本质是概率游戏,不存在"必中公式"科学投注的核心是风险收益比管理长期投注的期望值始终为负(理论回报率约47%-63%)数学维度:运用概率工具优化策略经济维度:控制投注成本在可承受范围人文维度:将彩票视为社会公益的参与方式通过本文构建的数学模型,彩民可以在概率框架内实现更理性的投注决策。但最终能否收获幸运,仍取决于那个永恒的未知数——概率女神的眷顾。一、超几何分布的核心公式。

weixin_44904675的博客 1万+

413 Request Entity Too Large报错处理

413 Request Entity Too Large报错处理 今天的项目中遇到了这个问题:文件在通过app上传至七牛云时,本地环境,无论文件大小都可以上传,而在线上环境,小文件可以上传但大文件(超过2m),却出现413 Request Entity Too Large报错处理,经排查是请求通过nginx出现了问题,经过分析这个报错,是因为nginx的默认上传文件大小配置client_max_...

ruiace的博客 1853

Trae+雪球MCP,化身专业的股票分析师(玩转100个MCP系列第二弹)

大家好呀,我是程序员夏叶,深度AI编程使用者,专注于分享AI编程方面的使用技巧、经验以及前沿资讯,有兴趣的可以关注我的公众号,一起学习,共同进步。第二弹,使用Trae+雪球MCP,获取股票实时行情,分析股票走向等,写代码间隙看看股票价格,研究研究行情,哈哈。真的很不错呀,最关键的是,足够隐蔽,同事以为你在写代码,实际你在浏览股票行情,哈哈,感兴趣的可以试一下哦。说实话,沧州明珠这只股我算是砸手里了,不过还好买的不多,哈哈。

cpp加油站的专栏 518

Nginx状态码413 Request EntityToo Large问题解决

问题原因 通常出现该问题的原因是因为client端上传的附件大小超过Nginx设置的默认大小。 解决 找到nginx.conf的配置文件在有效的http字段添加如下代码 http { ... client_max_body_size 8M; #设置客户端上传最大文件大小,如果继续报错继续加大 client_body_buffer_size 128...

ma_mxr的博客 3224

RAG系统中Embedding模型选型实战

本文详细介绍了RAG系统中Embedding模型选型实战,希望能对学习RAG的同学们有所帮助。 文章目录 1. 前言 2. 思路解析 3. 测评数据集构建 3.1 步骤一 3.2 步骤二 3.3 数据示例 3.4 总结 4. 实战代码 4.1 本地模型 4.2 使用第三方的Embedding模型API

herosunly的博客 17万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Nginx解决错误413 Request Entity Too Large

最近一个项目当中,要求上传图片,并且限制图片大小,虽然在laravel当中已经添加了相关的表单验证来阻止文件过大的上传,然而当提交表单时,还没轮到laravel处理,nginx就先报错了。当你仔细看报错页面时,你会发现有nginx版本信息,经过分析,这报错是因为nginx的默认上传文件大小配置client_max_body_size只有2MB,基于nginx验证比laravel验证要早,想要友...

weixin_34306446的博客 1338

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

php.ini修改php上传文件大小限制的方法详解 和解决 413 Request Entity Too Large

打开php.ini,首先找到 file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开 upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹 upload_max_filesize = 8m ;望文生意,即允许上传文件大小的最大值。默认为2M post_max_size = 8m ;指通过表单POST给PHP的...

大海技术博客 4224

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

500 internal server error_Nginx大文件上传413和500问题排查总结

背景前几天上传一个300MB的文件,发现报错,这里说明一下,用户的请求会通过Nginx代理(负载均衡)到应用服务器。413问题解决错误信息为“413 Request Entity Too Large”。查看Nginx日志,错误信息如下:2020/09/10 11:14:47 [error] 253#0: *13083 client intended to send too large body: ...

weixin_39791225的博客 545

nginx 上传 文件超时设置_Nginx大文件上传413和500问题排查总结

背景前几天上传一个300MB的文件,发现报错,这里说明一下,用户的请求会通过Nginx代理(负载均衡)到应用服务器。413问题解决错误信息为“413 Request Entity Too Large”。查看Nginx日志,错误信息如下:2020/09/10 11:14:47 [error] 253#0: *13083 client intended to send too large body: ...

weixin_36247139的博客 1407

软航H5 PDF签章产品经nginx代理之后浏览器中PDF盖章时提示:签章失败:网络错误 的问题排查及解决办法

nginx 代理 应用后报错, F12调试发现提示 413 Request Entity Too Large

yeyuningzi的博客 1424

IIS下C#大文件上传配置全攻略:解决413与404.13错误

文件上传是Web开发中的基础能力,但超过一定体积的请求往往会被服务器静默拦截。IIS与ASP.NET双重限制机制决定了上传大小受请求筛选与运行时两层约束:IIS的maxAllowedContentLength默认约30MB,而ASP.NET Framework的maxRequestLength默认仅4MB,理解这两个参数才能从原理上定位413、404.13等典型报错。通过web.config调整requestLimits与httpRuntime节点,配合C#异步流式读取以及前端分片上传,既能避免内存暴涨,也

weixin_34032792的博客 314

Apache与Nginx核心差异:进程模型、事件驱动与生产配置实践

Web服务器是现代应用交付的基石,其底层架构直接决定并发能力、资源开销与运维韧性。Apache基于多进程/多线程MPM模型,强调模块深度集成与运行时稳定性,适合PHP嵌入式部署和强认证场景;Nginx则采用异步非阻塞事件驱动架构,以极低内存支撑高并发,依赖FastCGI等标准协议实现语言解耦。这种根本性设计差异,导致二者在HTTPS配置、反向代理健壮性、大文件上传(413错误)定位路径、Brotli压缩支持及配置容错机制上表现迥异。理解进程模型与事件循环原理,是规避502网关错误、if指令陷阱、SSL环境变

weixin_30265103的博客 511
上一篇: 浅谈DIV居中方式(带实例)
下一篇: PHPstorm相关设置以及快捷键
Tim_PHPer
博客等级 码龄11年 227粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值