2

目前我们有一个运行 Django 的带有 mod_ssl 2.2.3 的 Apache 2.2.3 服务器,用户使用 x509 证书进行身份验证。

到目前为止,系统运行良好,但单个用户在尝试上传文件时收到 400 Bad Request 错误,有关此操作的 ssl_error_log 的内容是:

[<date>] [error] [client <client ip>] 请求失败:读取标头时出错,referer:<referrer url>

ssl_access_log 的内容是:

<client ip> - - [<date>] "POST <target page> HTTP/1.1" 400 321

此外,据我所知,用户的浏览器是 Firefox。

我完全无法重现此错误,到目前为止,其他用户都没有遇到过它。你能指出发生这种情况的一些原因吗?

4

1 回答 1

1

我遇到过在发送 X 个字节后停止上游的连接。X 是一个相当低的值,足以请求一些简单的页面,但不能处理 ajax 请求,更不用说上传文件了。据我记得,这种连接问题仅在网络共享时发生(来自特定的 Android 手机,但我什至没有测试其他手机)。

因此,如果上游中断并且上传停止,则 apache 会返回此错误是有道理的,根据这篇文章:“Apache 等待与 Timeout 指令相等的时间(如果未定义,则默认为 5 分钟)等待来自客户端的响应. Apache 很可能正在等待指示标头结束的 CRLF,但从未收到它。."

于 2013-10-03T22:44:33.380 回答