413 Request Entity Too Large

系统上线一段时间后,用户反应附件无法上传,因为服务器正式环境是采用外挂nas磁盘的方式,所有附件图片文档统一交给了文件服务器运维那边负责,因为本身程序端没有做控制,后来联系nas运维那端,反馈也没有做大小控制,而且直接粘贴上传到服务器磁盘确认是可以的,后来最终确认了问题所在,我们系统本身使用了nginx架构,所有的请求都会第一步打到nginx,交给它做统一的分发和转换处理。
问题就出在这里,因为nginx默认的请求body大小是1M,用户传的附件大于1M!
#######################################
解决办法:

第1步:设置nginx的client_max_body_size

设置nginx主配置文件nginx.conf中的参数client_max_body_size

下面三种方式限制文件大小为20m,可根据需求自行设置

a. 在http{ }中设置:client_max_body_size 20m;
b. 在server{ }中设置:client_max_body_size 20m;
c. 在location{ }中设置:client_max_body_size 20m;
三者区别:
http{} ——》控制所有nginx收到的请求报文大小
server{}——》控制该server收到的请求报文大小
location{}——》控制匹配了location 路由规则的请求报文大小

第2步:重启nginx

a. 查询nginx主进程号:ps -ef | grep nginx
b. 停止nginx进程
从容停止:kill -QUIT 主进程号
快速停止:kill -TERM 主进程号
强制停止:kill -9 nginx

c. 重启nginx进程
进入nginx安装目录sbin下,如:cd /usr/local/nginx/sbin

启动:./nginx
重启:./nginx -s reload
重启:./nginx -HUP 主进程号

你可能感兴趣的:(Nginx,nginx,文件上传,nginx设置文件上传大小,EntityTooLarge,nginx,上传文件大小)