我通过mod_wsgi(3.x)在Apache(2.x)上部署了一个小型的Django(1.2.x)项目。 在pipe理员,如果我上传一个<1MB的文件,我可以通过; 然而,对于一个文件,比如说1.2MB的大小,我只能从服务器得到一个400的响应,而在主体中只有“ Error 400 ”。 我想知道为什么会这样。 据我所见,Apacheconfiguration中没有设置LimitRequestBody 。 我曾尝试使用多种浏览器进行上传,包括:Firefox,Chrome和Safari。
在Apache的日志文件中,显然没有input提供400错误响应的请求。 这很奇怪。
我应该指出,发生这种情况的情况是:所讨论的项目部署在负载平衡器后面的两个相同的Apache服务器(完全相同的设置)上。 在我的开发设置当然,这个问题并没有出现。
任何帮助,将非常感激。
更新 :我已经发现负载平衡器logging以下错误消息: Bad request headers : Content-length exceeds post body limit 。 另一个有趣的地方是,如果文件大于1 MB通过HTTPS上传,它会很好。 但是,当它通过HTTP上传,它会发出400错误。
更新#2 :我决定使用Python和web.py来编写一个简单的file upload程序。 我在mod_wsgi下的相同虚拟主机configuration下将其部署在生产服务器上。 当应用程序通过SSL提供服务时,file upload工作。 但是当他们通过非SSL服务时,他们给了Error 400 。 所以,我比以前更难过了。
问题已经解决,我将自己回答。 非常感谢Redmumba和Graham Dumpleton的评论。
这个问题当然不是在Django(正如我们已经build立的)。 但是,事实certificate,这不是Apache。 问题出在系统pipe理员已经忘记了(叹气)的系统上的防火墙。 显然,防火墙的文件大小限制为1MB。