网站在进行文件上传的时候出现了上传文件失败,
查看上传时的请求连接,发现上传的url报出了413的错误码。
413的错误码是表示:
请求实体太大。
为什么会出现该问题?
是因为nginx中的某处配置不够大
#允许客户端请求的最大单文件字节数
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进行重新启动即可。
Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)
1、错误描述
2、错误原因
上传文件时,利用localhost访问系统,不会出现这个问题;用域名访问这个系统时,出现这个问题,提示是:请求实体太大
- 1
由于Nginx反向代理服务器client_max_body_size默认值为1MB,而上传文件大于1MB,所以就出现这个错误
3、解决办法
打开Nginx反向代理服务器nginx.conf配置文件,修改client_max_body_size值
client_max_body_size 8M
- 1
- 2
- 3
4、存放位置
可以选择在http{ }中设置:client_max_body_size 20m;
也可以选择在server{ }中设置:client_max_body_size 20m;
还可以选择在location{ }中设置:client_max_body_size 20m;
三者到区别是:http{} 中控制着所有nginx收到的请求。而报文大小限制设置在server{}中,则控制该server收到的请求报文大小,同理,如果配置在location中,则报文大小限制,只对匹配了location 路由规则的请求生效。