问题描述
业务添加DDoS高防后,通过HTTP和HTTPS协议上传较大文件时失败,提示类似如下错误。
413 Request Entity Too Large
The requested resource does not allow request data with the requested method or the amount of data provided in the request exceeds the capacity limit.
问题原因
出现该问题的原因如下所示:
-
上传的文件大于2GB时,是由于DDoS高防的限制导致。DDoS高防是基于Tengine架构,自身也是一个反向代理服务,存在上传文件的大小限制(最大2GB)。
- 上传的文件小于2GB时,是由于DDoS高防后端服务限制了上传文件的大小。
解决方案
您先确认上传的文件大小,根据文件的大小,选择对应的解决方法:
上传的文件大于2GB
解决DDoS高防最大能上传2GB文件限制的解决方法如下:
- 您可以给您的业务添加打包压缩功能,将您的文件压缩至小于2GB,然后上传压缩后文件。
- 如果文件无法打包压缩,建议您将文件上传至OSS,详情请参见通过OSS上传文件。
说明:OSS不同的接口,其最大上传文件的值不一样。其中putObject、postObject接口单个最大上传文件的值为5GB,而分片接口最大上传文件的值很大,基本上不用考虑其限制问题。
- 您可以跳过DDoS高防,直接将文件通过没有被DDoS高防防护的地址上传。
上传的文件小于2GB
本节以Nginx为例,介绍DDoS高防后端的服务限制了上传文件大小时,如何调整服务最大上传文件的值:
- 编辑Nginx的nginx.conf配置文件,添加或修改以下参数。
client_max_body_size [$Num]
说明:[$Num]请设置成大于实际上传文件大小的值,该值为最大上传文件的值。
- 执行以下命令,确认Nginx配置文件正常。
nginx -t
- 执行以下命令,重新加载Nginx。
nginx -s reload
更多信息
相关产品的最大上传文件的值如下:
- DDoS高防:2GB
- WAF:2GB
- SLB:50GB
适用于
-
DDoS防护