【问题标题】:http keep alive and sslhttp保持活动和ssl
【发布时间】:2015-12-03 21:40:58
【问题描述】:

一般建议在keep-alive中使用较低的值,比如15秒左右,这样我们可以经常清除空闲的socket,服务更多的客户端 假设我们有一个 SSL 连接,所以 15 秒不活动,这个连接会被关闭,那不是无效吗? ,因为如果客户端想要在一段时间后获取更多数据,它必须再次进行 SSL 协商

我想我在这里遗漏了一些要点?请建议 https 如何更好地与 keep-alive 配合使用

【问题讨论】:

    标签: ssl https webserver keep-alive


    【解决方案1】:

    这取决于:

    • 如果服务器有大量资源,则使用较长的保持活动时间会更有效。
    • 如果服务器缺少资源,最好缩短时间,因为每个打开的连接都会绑定资源。
    • SSL 连接建立有一些开销,因此需要更多资源(CPU 时间)。
    • 但是这种开销可以通过会话恢复来减少,但代价是另一个开销(用于缓存会话的内存)。

    最后,最佳设置取决于服务器的功能、负载等。 如果您不缺资源,最好有较长的存活时间,因为这样客户会更快地与您的网站互动。

    【讨论】:

      【解决方案2】:

      您可能需要考虑几个目标:

      1. 如果您正在优化延迟,那么您希望 Keep Alive 足够长以捕获连续请求,以最大限度地减少 TCP 和/或 TLS 握手的开销
      2. 如果您正在优化单台服务器的扩展能力以服务大量用户,那么您希望拥有简短的 Keep Alive
      3. 如果您正在优化加载大量小资源的初始页面加载,那么您希望有一个简短的 Keep Alive

      一般来说,静态文件服务器(针对同时下载的许多小文件进行了优化,例如 CSS、图像、JS,支持 HTML 页面)应该具有简短但非零的 Keep Alive。

      文件下载服务器(针对大型下载进行了优化)不需要 Keep Alive,因为下载时间在握手上占主导地位。您可能希望支持 Range 请求以支持简历和并行下载。

      对延迟敏感的请求应该有很长的 Keep Alive。

      【讨论】:

        猜你喜欢
        • 2012-03-09
        • 2012-05-20
        • 2018-10-23
        • 2013-10-09
        • 2012-12-24
        • 2011-11-22
        • 2011-02-03
        • 2012-05-15
        相关资源
        最近更新 更多