当代理服务器完全无法访问时,Internet Explorer 9 代理检测失败

当代理服务器完全无法访问时,Internet Explorer 9 代理检测失败

我到处搜索,只找到几处提到 Internet Explorer 的“坏代理列表”功能。基本上,如果您有一个用于自动代理配置的 PAC/wpad.dat 文件,并且您的脚本返回多个代理(用于故障转移),则 Internet Explorer 将始终使用第一个可用代理。如果它不可用,则应该将其添加到坏代理列表中,30 分钟内不会再次尝试,并且 IE 将开始使用返回的下一个代理。

在我的示例中,我使用的是 squid 代理。如果我停止代理服务器上的 squid 服务,则一切都会按预期运行,IE 会快速开始使用第二个代理,并且 30 分钟内不会再次尝试第一个代理。

如果我真的完全关闭了代理服务器(在本例中,我在代理上执行了“ifdown eth0”),Internet Explorer 会继续尝试代理。它最终将使用列表中的第二个代理,但第一个代理似乎从未被添加到“坏代理列表”中,每个新请求大约需要 60 秒,因此,如果您的网站加载了大量外部内容,则加载可能需要很长时间。

还有其他人使用 PAC 文件提供冗余代理吗?如果您的主代理完全无法访问,您是否遇到同样的问题?

答案1

这是由 IE9 的一个错误引起的。如果您停止代理服务,它将返回一个 RST 数据包,并且 IE9 会将代理添加到坏代理列表中。如果您的代理服务器确实已关闭并且将发生 TCP 超时,则 IE9 不会将您的代理添加到坏代理列表中。

为了解决此错误,您必须安装以下修补程序:

http://support.microsoft.com/kb/2777234/en-us

此修补程序还包含在以下安全公告中: https://technet.microsoft.com/library/security/ms13-080

但请注意,您必须安装此安全公告的 LDR 分支,因为正常安装(GDR 分支)不会安装修补程序。

相关内容