如何激活keep-alive,http://www.webpagetest.org表示keep-alive未激活

时间:2014-10-02 15:35:36

标签: php apache .htaccess keep-alive

我使用http://www.webpagetest.org工具检查网页,这表示保持活动未激活。我对此进行了研究,并转到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工具保持活着。

结果:

当使用网页测试工具检查托管在服务器上的test.html时,服务器上的图像notalive表示keep-alive未激活,但是对于服务器上的图像,该工具指示它是保持活动状态。

然后我将test.html交给服务器上的活动,并且网页工具完全按照上面的测试表明,对于notalive服务器上的图像,该工具表示keep-alive未激活且服务器上的图像处于活动状态该工具表示keep-alive已激活。

这让我相信,因为html文件是相同的,我的问题可能是由于服务器的配置不合理。

我从两台服务器运行了phpinfo()并保留了似乎与alive相关的行(基于上面的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

如果有人会看到上述情况并且可能就如何激活保持活力提供一些指导,我将非常感激。

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

1 个答案:

答案 0 :(得分:1)

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

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

他们已将网站移至L​​itespeed服务器,现在连接仍然存在。

感谢Blowski的帮助。