HTTP状态码413问题(http状态码411)
我们在网站进行文件上传的时候,出现错误提示:Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)
出现 413的错误码意思是:请求实体太大!
为什么会出现该问题?
是因为nginx中配置文件 ngnix.conf 中的client_max_body_size 配置设置的文件大小不够大,client_max_body_size默认值为1MB,而上传文件大于1MB,就会出现这个错误,根据自己请求文件大小的实际情况进行设置。注意:如果一个请求会上传多个文件,需要将多个文件的大小累计计算。
解决办法
1.在Nginx配置文件中 (nginx.cofig)设置一下大小,路径一般是:/etc/nginx/nginx.conf
#允许客户端请求的最大单文件字节数
client_max_body_size 10m;
#缓冲区代理缓冲用户端请求的最大字节数,
client_body_buffer_size 128k;
#nginx跟后端服务器连接超时时间(代理连接超时)
proxy_connect_timeout 90;
#连接成功后,后端服务器响应时间(代理接收超时)
proxy_read_timeout 90;
#设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffer_size 4k;
#proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_buffers 4 32k;
#高负荷下缓冲大小(proxy_buffers*2)
proxy_busy_buffers_size 64k;
#设定缓存文件夹大小,大于这个值,将从upstream服务器传
proxy_temp_file_write_size 64k;
其中 设置
client_max_body_size 8M;(配置请求体缓存区大小, 不配的话)
client_body_buffer_size 128k;(设置客户端请求体最大值)
这两项值就可以了,如果没有这两个设置,自行加上即可,最后再将nginx进行重新启动即可。
2.在http{}中设置
在http{}段中加入 client_max_body_size 10m。10m为允许上传的最大值,自己可进行修改。
可以选择在http{ }中设置:client_max_body_size 20m;
也可以选择在server{ }中设置:client_max_body_size 20m;
还可以选择在location{ }中设置:client_max_body_size 20m;
三者的区别:
设置到http{}内,控制全局nginx所有请求报文大小;
设置到server{}内,控制该server的所有请求报文大小;
设置到location{}内,控制满足该路由规则的请求报文大小;