####1.问题描述 在开发和测试环境中,使用commons-fileupload上传视频文件,几十M的文件都没有问题 在线上环境中,上传几十M文件会出现,上传到20,30%时断开,又继续上传的现象 ####2.运行环境 开发环境:Windows+Tomcat7 测试环境:Linux+Tomcat7 线上环境:Linux+Nginx+Tomcat7 ####3.解决思路 1.debug上传文件代码,发现代码没有问题 2.查看线上Tomcat运行日志发现: INFO: Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Request header is too large Request header is too large-->请求头太大 3.感觉可能是线上Tomcat或Nginx问题,百度了一下,网上说需要修改Nginx的配置
###4.错误原因 Nginx默认文件上传的大小为1M,超过连接大小,连接直接断开 ###5.解决方案 设置nginx.conf的 client_max_body_size 200m; 在nginx.conf中配置: http{
client_max_body_size 200m;
}
然后重启Nginx,一切正常
注意:
200m:表示运行上传文件的最大大小,可根据实际情况设置。
在此把问题记录下来,以备后患,如果大家遇到这个问题,可以尝试下这种解决方案!