我的问题是:
保持连接 (http) 处于打开状态的建议时间长度是多少?
对于服务器,您希望尽可能长时间地保留它,因为对于客户端,重用连接总是比打开新连接更快。
然而,这方面的回报是递减的——只需几秒钟,您就可以快速下载该网站。较长的持续时间只会稍微加快后续导航。
在典型的 Apache 配置和其他服务器中,每个打开的连接都保持线程运行,这涉及到内存成本,因此最好将其保持在 2-3 秒,甚至禁用它并通过 haproxy 等添加保持活动支持。
在像 nginx、lighttpd(和带有实验性事件 mpm 的 Apache)这样的事件服务器中,成本相对较小,因此您可以拥有较长的 KeepAliveTimeout。
如果您认为“KeepAliveTimeout”值 - 这取决于您的站点。如果它类似于带有页面内图像等的论坛主题,那么您可以将 KeepAliveTimeout 设置为 2 或 3 秒。如果它是非常简单的页面,没有很多页内图像,您可以停止使用 keep-alive。我认为最好使用它并运行一些基准测试。它总是更好:)