特定用户的 Apache,mod_ssl“请求失败:读取标头时出错”

Posted

技术标签:

【中文标题】特定用户的 Apache,mod_ssl“请求失败:读取标头时出错”【英文标题】:Apache, mod_ssl "request failed: error reading the headers" for a specific user 【发布时间】:2012-06-20 11:09:03 【问题描述】:

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

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

[] [error] [client ] request failed: error reading headers, referer:

ssl_access_log 的内容是:

- - [] "POST HTTP/1.1" 400 321

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

感谢您的解释,有什么办法可以解决这个问题吗? 您必须修复客户端。阿帕奇只是在做它的工作。在大多数情况下修复客户端是不切实际的,但如果您可以控制客户端,只需将其浏览器升级到更高版本。

以上是关于特定用户的 Apache,mod_ssl“请求失败:读取标头时出错”的主要内容,如果未能解决你的问题,请参考以下文章

根据 URL 路径或 apache(mod_ssl) 中的特定服务设置 SSL/TLS 协议版本

如何使用 Apache mod_ssl 变量验证 URI 格式的主题备用名称的内容?

X.509 客户端身份验证的 Apache + mod_ssl 中间 CA 自动发现

Apache / mod_ssl 可以支持两层操作吗?

Linux_install mod_ssl openssl apache

无法加载 Apache mod_ssl