Apache的错误导致网站Yandex的搜索辍学

在Apache的一个无辜的望着实现的bug是新的HTTP / 2模块(mod_http2)使用不正确地宣布HTTP / 2支持升级:H2头。这个简单的错误,使网站无法访问YandexBot以及建立在服务的NodeJS。

阿帕奇2.4.16引入用于HTTP / 2支持一个新的模块(mod_http2)。在服务器上,其中该模块被激活,Apache会发出一个额外的“升级:H2” HTTP标头做广告HTTP / 2支持。唯一的问题是,这首部的目的是作为来自客户端的请求报头,而不是一个响应头。非标准使用发送作为响应报头中的请求报头的将导致某些HTTP库的问题,例如那些由Yandex的和建立在服务的NodeJS使用。我接触Yandex的支持,他们证实了这一问题。

Yandex的是一个搜索引擎,控制了俄罗斯45%和乌克兰搜索市场的20%。当他们的YandexBot无法检索从您的网站的次数超过了一把页面,您的网站从搜索结果中删除。这个问题表现在Yandex.Webmaster工具作为“提取错误:您的服务器配置为使用gzip或deflate传输压缩的数据。压缩文件已损坏,不能由我们的检索机器人进行解压缩。”错误消息完全是误导,因为真正的问题完全是另一回事。

问题是在Apache项目的跟踪BUG#59311它已经解决了在主分支。该修补程序将被列入下一个主要版本。然而,也有人提出了后移植到他们的下一个维护版本的Apache 2.4.21,这是在七月初的预期。

直到官方补丁发布,您仍然可以通过完全移除有问题的头解决在Apache配置的问题。这应该不会有任何不良副作用,也不会破坏你服务器上的HTTP / 2也不支持HTTP / 1.1的支持。

头未设置升级

这个问题目前影响最上面的一个万个网站为2016年5月19日的0.04%。受影响的网站被抓取Alexa的前1万个网站,并期待在他们的响应头确定。(这种测量可能并不能代表任何受影响的网站将看到较少的流量,并可能退出前一百万列表作为结果。)

影响Apache的版本2.4.16在2015年10月及以后至2.4.17,2.4.18,2.4.20和发布。这些版本将继续流行了相当长的一段时间,由于服务器的更新和Linux发行包更新翻转时间在许多流行的Linux发行缓慢的性质。yabo88软件下载HTTP / 2默认情况下不启用,因此这个问题上只显示了当mod_http2模块与启用协议H2 HTTP / 1.1指示。

我之前提到过这个错误我三个正常运行监控服务检讨。然而,当时我并没有认为这是太大的问题。当我逐渐开始松动,来自俄罗斯的所有业务(从Yandex的搜索主要简称),我会采取行动,并应用前面提到的变通。像往常一样,获得重建索引比得到deindexed更难。

如果你正在运行受影响的版本,可考虑升级或部署上述解决办法,以确保其他服务可以与您的Apache Web服务器交谈。