数百个与服务器的连接,只需在IE8中打开10个以上的选项卡?

我们有私人论坛运行vBulletin,并且我们收到了一个客户的抱怨,当他打开大量的标签时,他们无法访问他们。 他最后一次打电话,确定我们的主机已经自动阻止了他的IP地址。 在与主机打开支持票证后,他们解除了封锁,他们说已被自动阻止了太多的连接(我假设并发连接)。 他们说有546个连接。

客户正在运行IE8,并声称大约8-12个标签后,其余的“超时” – 每一次。 当然,没有其他网站有这个问题。

更新:事实certificate,Chrome(或Firefox,但我认为这是Chrome)具有相同的问题。 但歌剧似乎是罚款(我正在计算,因为它的积极的caching)。

没有直接访问电脑的任何一端,我怎么能希望解决这个问题?

gbroiles已经有一个很好的答案; 我添加了一个答案,因为这太长,不适合评论。

所有的浏览器打开多个连接,以更快地下载网站。 必须下载链接到HTML中的每个图像,CSS文件,Javascript文件等,这是并行的,以加快速度。 您可以看到Browserscope.org的“networking”选项卡上每个浏览器打开了多less个连接 。

还有两件事要注意:

  • 趋势是从来没有浏览器每个主机打开更多的连接。
  • 如果连接降级到HTTP 1.0(由中介代理服务器),则大多数浏览器将打开其他连接。 (我可以很快find的最好的链接在这里 ; Steve Souders在他的一本书中写了更多关于这方面的内容。)

实际上,如果这个用户打开10个以上的标签到一个小的VPS服务器,那么他就是在囤积资源。 我认为这是不合理的。 用户可能脾气暴躁,但他只有一套眼睛,所以他不能同时声称与所有10+页面交互。 如果服务器是一个负载很重的大型机器,那么这当然是另一回事了。

你可以做的一些事情是:

  • 看看你的HTTP Keepalive设置 ,并closures它,或者将它设置为一个较低的超时值(fx 5秒)。 这可能还不够,但至less你不会有太多徘徊的开放连接。
  • 在内容分发networking(CDN)上托pipe静态内容(徽标,CSS,JS,用于布局的图像) 。 小型CDN帐户现在很便宜,您可以将所有对静态内容的HTTP请求指向您自己的服务器。
  • validation您的服务器是否为静态内容发送适当的caching标头。 至less,您不希望用户一遍又一遍地下载相同的徽标,CSS和更多。 看到这个优秀的caching教程 ,并在webpagetest.org或REDbot testing你的头 。
  • 确定哪个系统将您的客户列入黑名单。 如果这是来自您的ISP的反DDoS服务,那么也许您可以要求将其排除在反DDoS防护之外(但首先要考虑这一点)。 如果这是一个在主机软件防火墙,那么你可以要求提出的限制。

总之,您应该能够与您的托pipe合作伙伴一起解决这个问题,但首先要考虑潜在的后果。

这听起来像你的主机有一些反DOSconfiguration设置,你的客户通过同时打开多个选项卡触发它。 如果一个访问你的系统的标签打开几个同步的HTTP会话来并行下载文件,我并不感到惊讶,所以如果你的客户一次打开10个标签页,就像新的浏览器提供的那样,那么听到你的客户正在向您的服务器开放10 x个HTTP会话。

IE 8打开最多6个并发会话到相同的主机名 。

如果您将多个主机名设置为指向相同IP的CNAME(某些人喜欢设置,例如“images.example.com”,“css.example.com”和“forums.example.com”,则所有指向到相同的实际主机),你可能会让问题变得更糟,因为IE很难看到它们都是同一台机器 – 显然比较是由主机NAME而不是IP完成的。

您的客户可以通过使用不同的浏览器,使用本地caching, 修改IE安装以使用更less的同时会话 ,或者一次不加载太多的标签来降低发生这种情况的可能性。

您可以要求您的主机增加允许连接到您的networking服务器的数量,缩小检测过度使用的时间窗口,或者如果您的客户使用可预测的IP地址,则将您的客户列入白名单。

如果根据同时打开的连接数排除主机的防火墙,则可以通过确保configuration得到优化来改善情况 – 例如,最小化不必要的查询,查看使用清漆或其他types的加速器进行caching,转向在压缩,确保您允许HTTP持久连接。

这听起来像是一个难以解决的问题,如果你无法控制系统进行连接或系统限制连接。

鉴于您无法控制Web浏览器或服务器,您有两个选项。

1)通过把网站放在你有更多控制权的地方来控制服务器。 这会花费你的时间和金钱,但它会为你赢得尽可能多的控制,你愿意支付。 Rackspace云服务器,推荐提供商提供的VPS或者高品质的共享主机在这里将会有很长的路要走。 你也可以使用托pipe论坛的解决scheme,你不会得到太多的控制权,但你会付钱给其他人担心这样的事情。

2)减less要求的数量。 你可以做到这一点,没有多个CSS或JS文件,减less图像的数量,使用CSS的精灵,并最终使用CDN(或只是一个单独的机器)托pipe尽可能多的外部图像,尽可能的JavaScript和CSS。 你需要能够对你的论坛软件进行相当严密的控制,而且我从来没有用vBulletin开发过,但它肯定是可行的 – 至less部分是可行的。