413 Request Entity Too Large

tech2023-08-02  95

系统上线一段时间后,用户反应附件无法上传,因为服务器正式环境是采用外挂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 主进程号

最新回复(0)