我有一个小型的 Django (1.2.x) 项目,通过 mod_wsgi (3.x) 部署在 Apache (2.x) 上。在管理员中,如果我上传一个小于 1MB 的文件,我可以通过;但是,对于一个文件,比如说 1.2MB 大小,我会从服务器收到 400 响应,其中“错误 400“仅在正文中。我想知道为什么会发生这种情况。据我所知,LimitRequestBody
Apache 配置中没有设置。我尝试使用多种浏览器上传,包括:Firefox、Chrome 和 Safari。
在 Apache 的日志文件中,似乎没有给出 400 错误响应的请求条目。这很奇怪。
我应该指出的是,发生这种情况的场景是这样的:该项目部署在两个相同的 Apache 服务器(完全相同的设置)上,它们位于负载均衡器。当然,在我的开发设置中,这个问题不会出现。
任何帮助都将不胜感激。
更新:我发现负载均衡器记录了以下错误消息:Bad request headers : Content-length exceeds post body limit
。另一个有趣的事情是,如果文件大于 1 MB 是通过 HTTPS 上传的,则上传成功。但是,如果文件通过 HTTP 上传,则会出现 400 错误。
更新 #2:我决定使用 Python 和 web.py 编写一个简单的文件上传程序。我将其部署在相同虚拟主机配置下的生产服务器上,在 下mod_wsgi
。当应用程序通过 SSL 提供服务时,文件上传可以正常工作。但是当它们通过非 SSL 提供服务时,它们给出了Error 400
。所以,我比以前更加困惑了。