大文件上传失败原因之:Tomcat HttpPost超过大小和超时

今天遇到一例文件上传失败,研发的同学说代码那边没有问题,应该是Tomcat或者Nginx的配置中限制了HttpPost的大小。于是我

Nginx中限制请求大小的地方是如下的client_max_body_size,我们图方便,直接分3000m,应该足矣:

      location /app {
            proxy_pass        http://server_name;
            client_max_body_size  3000m;
            access_log off;
        }

Tomcat则是在server.xml中的connector元素中添加:maxPostSize=” ” ;“ ”中填你需要限制到的大小,如“0”为不限制。缺省这个参数,就会是2m. 所以应该是这里出了问题。于是我添加一行maxPostSize=”0″:

 

我会告诉你这样改完没有效果吗。上传还是失败。

因为HttpPost不仅是大小会限制,还会有时间限制。虽然你可以上传了,但你在connectionTimeout的限制时间内不能传完,连接也会断开的。

所以再将它修改如下,原先的connectionTimeout时间是“20000”,但是注意,单位是毫秒啊……于是我把它加到”2000000“,有半小时以上,足矣吧:

 

实测成功。

This entry was posted in asiter on 2013 年 11 月 25 日 by aliao.

你可能感兴趣的:(tomcat+mysql)