背景

前几天上传一个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: 392820633 bytes, client: 192.22.141.3, server: , request: "POST /file/uploadImage HTTP/1.1", host: "test.com"

从日志文件可以看出上传的文件太大了,超出了Nginx配置的最大值,查看Nginx配置,发现client_max_body_size 200m;设置的太小了,于是修改配置client_max_body_size 500m;默认情况下client_max_body_size是1MB。

重启Nginx后,重新上传文件,该问题解决,但是发现另外一个问题。

500问题解决

如下图所示,错误信息为“500 Internal Server Error”

查看Nginx日志,错误信息如下:

2020/09/10 11:34:31 [warn] 249#0: *13247 a client request body is buffered to a temporary file /dev/shm/nginx_temp/client_body/0000000037, client: 192.22.141.3, server: , request: "POST /file/uploadImage HTTP/1.1", host: "test.com"

2020/09/10 11:36:52 [crit] 249#0: *13247 pwrite() "/dev/shm/nginx_temp/client_body/0000000037" failed (28: No space left on device), client: 192.22.141.3, server: , request: "POST /file/uploadImage HTTP/1.1", host: "test.com"

从日志中可以看出:(1)上传的文件会缓存到临时文件“/dev/shm/nginx_temp/client_body/0000000037”中;(2)临时文件的空间不足;

实际上,上传的文件会首先保存到缓冲区中,client_body_buffer_size可以配置缓冲区的大小,只有当文件超过缓冲区的大小才会缓存到临时文件中。

这里的/dev/shm目录其实就是内存,默认是总内存的一半,可以把这个目录当作一个高速磁盘来用,很多应用程序为了提升性能都会把临时文件存放在里面。

要解决这个问题,修改临时文件路径就可以client_body_temp_path /export/data/temp/;

总结

以上就是解决问题的思路,实际上一句话就可以概括,修改下面两个配置就可以解决问题:

# 设置上传文件的最大值

client_max_body_size 500m;

# 设置临时文件存放路径

client_body_temp_path /export/data/temp/;

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

  1. nginx 上传 文件超时设置_Nginx在高并发下的性能优化点!有这篇就够了!

    点击上方"java进阶架构师",选择右上角"置顶公众号" 20大进阶架构专题每日送达 前面几周,讲过Nginx的日志配置:Nginx | 超详细!Nginx 日 ...

  2. nginx 上传 文件超时设置_nginx限制上传大小和超时时间设置说明/php限制上传大小...

    现象说明: 在服务器上部署了一套后台环境,使用的是nginx反向代理tomcat架构,在后台里上传一个70M的视频文件,上传到一半就失效了! 原因是nginx配置里限制了上传文件的大小 client_ ...

  3. fdfs往服务器上传文件超时,FastDFS 实现大文件分片上传

    1.引入fastdfs com.github.tobato fastdfs-client 1.25.2-RELEASE cn.hutool hutool-all 4.0.12 2.编写控制层Contr ...

  4. 大文件分片上传前端框架_js实现大文件分片上传的方法

    文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠.网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹. ...

  5. 上传问题总结(文件大小检测,大文件上传)

    PHP上传问题总结(文件大小检测,大文件上传) 由于涉及到本地和服务器两方面的安全问题,所以基于input type="file"形式的页面文件上传一直处于一个很尴尬的位置.一方面 ...

  6. 局域网ftp服务器传文件超时,ftp服务器复制文件超时

    ftp服务器复制文件超时 内容精选 换一换 在SAP系统中,如果选择共享文件系统由SFS Turbo而非NFS Server提供时,例如:SAP HANA中的backup卷或者shared卷,您需要创 ...

  7. Python组织文件 实践:查找大文件、 用Mb、kb显示文件尺寸 、计算程序运行时间...

    这个小程序很简单原本没有记录下来的必要,但在编写过程中又让我学到了一些新的知识,并且遇到了一些不能解决的问题,然后,然后就很有必要记录一下. 这个程序的关键是获取文件大小,本来用 os.path.ge ...

  8. Python组织文件 实践:查找大文件、 用Mb、kb显示文件尺寸 、计算程序运行时间

    这个小程序很简单原本没有记录下来的必要,但在编写过程中又让我学到了一些新的知识,并且遇到了一些不能解决的问题,然后,然后就很有必要记录一下. 这个程序的关键是获取文件大小,本来用 os.path.ge ...

  9. java rmi 文件传输_JAVA-RMI实现大文件传输

    在使用java-rmi的过程中,必然会遇到一个文件上传的问题,由于在rmi中无法传输文件流(比如rmi中的方法参数不能是FileInputStream之类的),那么我们只好选择一种折中的办法,就是先用 ...

最新文章

  1. 1010. 一元多项式求导
  2. hive sql 报错后继续执行_Hive 执行sql命令报错
  3. python中的封装调用_Python基础之封装
  4. 新版知识付费系统付费阅读小程序源码知识付费平台
  5. GOF之结构型模式Ⅰ(重点)
  6. POJ 1015 Jury Compromise dp分组
  7. 金蝶kis商贸采购单商品代码_金蝶大包装小包装多单位计量单位换算关系用法,看了这个秒懂...
  8. 13、OSPF配置实验之LSA2
  9. js实现发送验证码倒计时按钮
  10. “黑客”必用兵器之“网络抓包工具”
  11. BackdoorBench
  12. ps计算机设置,ps标尺怎么调出来
  13. 第1章 计算机基础知识
  14. “2019年中国新型城镇化论坛”在京举行
  15. 2019华北五省计算机应用大赛官网,软件学院学生在2019年华北五省(市、自治区)及港澳台大学生计算机应用大赛(河北赛区)中喜获佳绩...
  16. 铁矿石再度领跌商品,LPG认沽上涨3倍,MTO季节性上涨2022.6.22
  17. 【unity 3d】--- 瞄准镜效果
  18. TexturePacker 自定义模板
  19. win10 明明可以上网但显示无Internet的问题(已解决)
  20. Mathworks MATLAB for Mac (强大的商业数学软件) v9.11

热门文章

  1. ArcGIS时态数据应用——动态展示3个月内犯罪案件数量变化
  2. c语言使单片机输出低电平,单片机开发中的一些实用技巧
  3. timestamp 转换 mysql_技术分享 | MySQL:timestamp 时区转换导致 CPU %sys 高的问题
  4. 2 数据源配置_Quick BI支持哪些数据源(配置操作篇)
  5. 2020年有寓意的领证日期_2020年有意义谐音的领证日子 容易记住的领证日期
  6. 【学习笔记】5、Python基础语法
  7. 【学习笔记】Tableau基础介绍
  8. 【ABAP】通过ST05分析程序执行路径
  9. User Exits,Customer Exits,BADI and BTE基本概念
  10. 几则常用的BASIS技巧整理