IE9和apache SSL nokeepalive设置

目前,我正在使用Apache 2.2.3和CentOS 5.4作为我的php应用程序(运行在5.3.7上的php),应用程序正在HTTPS上运行,并且拥有根CA证书。

问题是,我们遇到了一些与IE9(只有IE9)奇怪的问题。 当IE9浏览器向我们的服务器提交HTTPS请求时,有时候没有HTTPS响应。 我注意到IE9会刷新页面。 更具体地说,所提到的页面是login页面。 所以,当我input用户名和密码,提交表单,但没有响应和IE9似乎重新加载相同的login页面。 (空白的用户名和密码)

从应用程序级别跟踪时,我注意到我收到了用户名和密码,应用程序没有错误地结束。

主要的头痛是它不能每次都被复制。 有时我们可以login没有任何问题,但有时会有上述的问题。

现在我们公司有networking团队,开发人员和其他团队。 我们的Apache运行在负载平衡器下。 networking人声称,他们永远不会改变任何设置,唯一的变化是我们的应用程序。 但是从开发人员的angular度来看,这些变化与login过程无关。

从我的angular度来看,好像有一次用户点击提交,而应用程序(apache)通过发送HTML(HTTPS响应)来做它的function,但是HTML在networking中以某种方式消失了。 我怀疑有什么关系连接保持活着? 可能IE9浏览器代理处理它的方式不同,它以某种方式认为连接失败,并重新加载页面重试?

但无论如何,我已经注意到在SSL中的以下设置SSL连接:

SetEnvIf User-Agent“。MSIE ”\ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0

不知道我们如何设置,以排除IE9及以上? 当我search时,上面的设置是为了解决IE浏览器与Apache连接时长期存在的问题。 但是,由于IE9是相当全新的可能问题已经确定,我们需要更新设置?

希望有人可以在这方面解释一些情况。

最有可能的服务器/networking设置有问题的地方,不是由任何IE9的怪癖造成的。

首先摆脱古老的IE6configuration: SetEnvIf User-Agent ".MSIE." \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 SetEnvIf User-Agent ".MSIE." \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 ,只要试一试就可以运行(任何forms)。 除非你需要支持IE5,我怀疑你在哪种情况下你是正确的更改为MSIE [2-5]的正则expression式MSIE [2-5]

负载均衡器和没有Keepalive可能是问题。 我会非常怀疑负载平衡器,并首先检查到底是怎么回事。

负载均衡器通常会在两个或多个IP地址之间“平衡负载”(内部或外部,此时不重要)。

然后,如果客户端计算机/浏览器之间没有连接请求,则必须为每个请求执行SSL协商。 结合慢速和低超时设置,我们可以得到SSL证书不匹配的问题,IE可能会保释,因为严格的安全设置。 我没有调查究竟IE9是否只有这个特质。 我会怀疑其他浏览器也这样做,并以不同的方式处理。

如果您使用的是SSL,您应该有KeepAlive ,因为它会使站点更快,并且不必一遍又一遍地通过SSL协商,因为负载平衡器在访问者的生命周期内没有将会话保持在同一台服务器上。

如果您的应用程序是内部的(在Intranet上),则您的负载平衡器会随机跳过您的IP地址,并且SSL需要每个连接都是相同的。

如果它不在内联网上,情况可能如此,我不知道你的networking是如何设置的,但是你应该首先检查一下。 禁用负载平衡器,看看是否存在问题。 并保持活着。

http://httpd.apache.org/docs/2.2/mod/core.html#keepalive

我也会检查你是否有反向DNS设置。 如果指向负载均衡器或负载均衡器后面的服务器,或者不指定负载均衡器。

testing你的连接并分析你的头文件,如果外部使用类似redbot.org或webpagetest.org来检查头文件是否被发送出去。 你也可以使用像提琴手一样的东西