使用django-filer上传2GB文件时Apache报HTTP 413错误求助
解决Apache SSL环境下2GB大文件上传413错误的方案
1. 显式设置请求体大小限制
Apache的LimitRequestBody指令控制请求体的最大允许值,尽管默认是0(无限制),但部分环境可能存在继承的限制。在你的SSL虚拟主机配置中添加该指令,明确设置足够容纳2GB文件的数值:
<VirtualHost _default_:443> <Location /> SSLRenegBufferSize 2147483648 LimitRequestBody 2147483648 </Location> <!-- 保留原有其他配置 --> </VirtualHost>
注:2147483648字节等于2GB,若需预留冗余,可设置为
2684354560(2.5GB)
2. 调整WSGI请求大小限制(mod_wsgi部署场景)
如果你的Django通过mod_wsgi运行在Apache上,默认WSGIMaxRequestLen为1GB,无法容纳2GB文件,需在Apache配置中添加或修改:
# 可放在全局配置或对应虚拟主机内 WSGIMaxRequestLen 2147483648
若使用反向代理部署,可按需调整代理缓冲区配置:
ProxyIOBufferSize 65536 ProxyBufferSize 65536
3. 确认超时配置适配大文件上传
现有Timeout 600(10分钟)基本满足2GB上传需求,若网络速率较慢,可适当延长:
Timeout 1200
同时保留当前的RequestReadTimeout配置,确保不会因读取速率过低中断上传:
<ifModule mod_reqtimeout.c> RequestReadTimeout header=0,MinRate=500 body=0,MinRate=500 </ifModule>
4. 重启Apache生效配置
修改完成后,重启Apache服务使所有配置变更生效:
# Windows系统命令提示符执行 httpd -k restart
完成以上配置后,即可在Apache SSL环境下正常上传2GB大文件。
内容的提问来源于stack exchange,提问作者Jian Zheng
相关产品推荐
相关产品推荐

