【问题标题】:How can I activate keep-alive, http://www.webpagetest.org indicates that keep-alive is not activated如何激活keep-alive,http://www.webpagetest.org表示keep-alive没有激活
【发布时间】:2014-10-03 18:22:15
【问题描述】:

我用http://www.webpagetest.org工具检查了一个网页,这表明没有激活keep-alive。我对此进行了研究,并被引导至How can I enable keep-alive?Changing PHP $_SERVER['HTTP_CONNECTION'] value

据此,我在 .htaccess 文件中尝试了<ifModule mod_headers.c> Header set Connection keep-alive </ifModule>http://www.webpagetest.org 工具仍然显示保持活动未激活。

我联系了托管公司,他们说启用了 Keep-Alive。

我制作了一个简单的 html 测试文件(称为 test.html),它试图加载两个图像,一个来自未保持活动状态的服务器(称之为 notalive),另一个来自服务器(称之为活动) ) 表明http://www.webpagetest.org 工具保持活动状态。

结果:

当使用webpagetest工具检查服务器notalive上托管的test.html时,服务器notalive上的图像表明keep-alive没有激活,但是对于服务器上的图像,该工具表明它是keep-alive。

然后,我将 test.html 切换到 server alive 并且网页工具完全按照上面的测试指示,对于 notalive 服务器上的图像,该工具说 keep-alive 未激活,并且对于服务器上的图像活着该工具说保持活动已激活。

这让我相信,由于 html 文件相同,我的问题可能是由于服务器 notalive 的配置造成的。

我从两个服务器上运行 phpinfo() 并保留了似乎与活动有关的行(基于上面的 stackoverflow 帖子),并在下面复制了这些行。

对于 notalive 服务器:

PHP  Version  5.3.29

Configuration:  apache2handler:  Max  Requests  Per  Child:  500  -  Keep  Alive:  on  -  Max  Per  Connection:  100
Configuration:  apache2handler:Timeouts  Connection:  300  -  Keep-Alive:  1

Apache  Environment:  HTTP_CONNECTION  close

HTTP  Headers  Information:  HTTP  Request  Headers:  connection  close

Connection  keep-alive


PHP  Variables:  _SERVER["HTTP_CONNECTION"]  close

对于活动服务器:

PHP  Version  5.2.12

apache:  Max  Requests  Per  Child:  1000  -  Keep  Alive:  on  -  Max  Per Connection:  500
Timeouts  Connection:  300  -  Keep-Alive:  5


Apache  Environment:  HTTP_CONNECTION  keep-alive


HTTP  Headers  Information:  HTTP  Request  Headers:  Connection  keep-alive

HTTP  Headers  Information:  HTTP  Response  Headers:
  Keep-Alive  timeout=5,  max=500
  Connection  Keep-Alive

PHP  Variables:  _SERVER["HTTP_CONNECTION"]  keep-alive

如果有人能查看以上内容并可能提供一些有关如何激活 keep-alive 的指导,我将不胜感激。

感谢您抽出宝贵时间阅读本文。

【问题讨论】:

  • 它没有回答您的问题,但您可以从命令行执行curl -I example.com,而不是使用webpagetest.org。如果您无法访问命令行,那么大多数浏览器的开发人员工具都会在“网络”选项卡中显示标题。
  • 谢谢布洛夫斯基。使用 Firebug:对于报告为不保持活动状态的图像,我得到 请求标头:连接:保持活动响应标头连接:保持活动。对于服务器上工具指示不保持活动状态的图像,Request 标头为 Connection: keep-aliveResponse 标头为 Connection: keep-alive, close。
  • 在这种情况下,请参阅stackoverflow.com/a/22143279
  • 布洛夫斯基。我编辑了 .htaccess 并删除了 Header set Connection keep-alive。现在连接的响应标头已关闭。因此,上述内容似乎有助于混淆响应。这并不能解决我的问题,因为我仍然想知道如何激活 keep-alive。

标签: php apache .htaccess keep-alive


【解决方案1】:

已排序或至少是一种解决方法。

根据我的测试结果,托管公司得出的结论是,问题是由于他们使用了 Apache Web 服务器和 Varnish Cache。

他们已将站点移至 Litespeed 服务器,并且连接现在保持活动状态。

感谢 Blowski 的帮助。

【讨论】:

    猜你喜欢
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 2014-01-12
    • 2012-09-15
    相关资源
    最近更新 更多