上传文件异常问题_413 Request Entity Too Large的解决方法

时间: 2019-01-18阅读: 1581标签: 文件

问题:413 Request Entity Too Large

对于有经验的开发着看见这个错误第一反应就是服务器的上传大小设置的不对那么修改服务器上传大小。对于nginx的配置有三个地方可以设置


解决413的正常途径

分别是 http,server,location 根据实际情况设置具体的大小

client_max_body_size 50m;

然而在本次问题中,设置之后发现配置未生效,还是一直报413的错误,以为是配置未生效,重启nginx,重启服务器,都未果。

由于不想影响业务直接reload导致的错误信息不明显 设置的级别最低,怕影响到全局。

通过直接请求应用的服务器没问题,再次确定这次问题跟 nginx 的配置有关,通过调整client_max_body_size的位置后错误信息变了,变为Gateway 504 Time out,超时,好像到这里问题就很明确了,由于这次请求的接口的主要业务是走的数据传输,数据交换,数据量比较大,时间比较长,超过了nginx默认的代理时长,再结合之前的错误信息发现,每次只要请求时间超过1分钟就立即报错,OK,那么接下来修改Nginx的代理超时时间配置,在location中设置一下内容,问题解决

proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;


反思

终究还是数据处理的太慢了,现在只有2k条数据处理花费了就有1分20秒,不太正常,那么怎么解决这种花费时间特别长的问题呢,这里提出几种思路 

1、队列+异步 

2、服务端接收到数据后,直接存放到队列里,然后直接返回结果,然后服务端的应用再去队列里取数据 ,如果有问题的话,再向请求方推送一条数据,这样可以大大的提升效率,减少数据的数据库操作的等


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/1838

关闭

input type=file 上传文件,同一个文件第二次上传无反应

用input file上传文件,掉用onchange方法时,多次上传同一个文件时功能失效,不会发送ajax请求,input[type=file]使用的是onchange去做,onchange监听的为input的value值,只有再内容发生改变的时候去触发

PHP下载大文件失败,并限制下载速度

PHP在使用readfile函数定义下载文件时候,文件不可以过大,否则会下载失败,文件损坏且不报错;这个是因为readfile读取文件的时候会把文件放入缓存,导致内存溢出;解决:分段下载,并限制下载速度;

PHP遍历目录和文件及子目录和文件

正常直接使用opendir方法,就可以读到所有的目录和文件。文件可以直接记录下来,目录则需要再进一步获取里边的文件信息。也就是,如果当前读出来是目录,则需要再次调用函数本身(递归)

Flutter 中如何加载并预览本地的 html 文件

直接进入主题,大概步骤如下:在 assets 创建需要访问 html 文件,这里创建一个files文件夹,专门来放这些静态 html 文件.在 pubspec.yaml 中配置访问位置

vue在index.html中引入静态文件不生效

出现该问题的标志如下,控制台warning(Resource interpreted as Stylesheet but transferred with MIME type text/html),第一种可能出现原因就是引入的静态文件在src文件夹内,这种的解决办法就是把资源引入静态资源的目录static

vue组件内部引入外部js文件

之所以要做这个是因为,在一个组件内部需要引入一个js文件来定位。如果放在index.html,这样每个组件都会有这个js。所以需要在组件内单独引入。

前端实现文件在线预览txt,pdf,doc,xls,ppt几种格式

做法就是使用iframe标签,只需要配置src就可以,根据文件后缀判断如果是office的类型就在url前加上https://view.officeapps.live.com/op/view.aspx?src=

前端实现文件下载功能

通过window.open()打开新页面下载文件;通过a标签打开新页面下载文件;通过文件流的方式下载;如何实现批量下载,且打包文件

js和css文件位置对页面性能有什么影响?

js脚本应该放在底部,原因在于js线程与GUI渲染线程是互斥的关系,如果js放在首部,当下载执行js的时候,会影响渲染行程绘制页面,js的作用主要是处理交互,而交互必须得先让页面呈现才能进行,所以为了保证用户体验,尽量让页面先绘制出来

lock文件_我们为什么需要 lock 文件

从 Yarn 横空出世推出 lock 文件以来,已经两年多时间了,npm 也在 5.0 版本加入了类似的功能,lock 文件越来越被开发者们接收和认可。本篇文章想从前端视角探讨一下我们为什么需要 lock 文件,以及它的一些成本与风险,当然其中一些观点对于后端也是适用的

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!