【问题标题】:HAProxy Keep-Alive - 1.5-dev21HAProxy Keep-Alive - 1.5-dev21
【发布时间】:2014-01-22 10:22:00
【问题描述】:

如上所述,我们正在运行 HAProxy V1.5。我正在尝试启用 Keep-Alive,并注意到响应标头不包含 Connection: Keep-Alive 标头。

我们的 haproxy.cfg 包含以下默认值,我认为这些默认值应该启用 keep alive:

    mode http
    timeout connect 15000ms
    timeout client 50000ms
    timeout server 30000ms
    timeout http-keep-alive 10s
    option http-keep-alive

我注意到如果我去掉选项 http-keep-alive 然后 Connection: Close 正在返回响应标头。谁能告诉我 HAProxy 没有返回 Keep-Alive 标头,因为它在技术上在 http 1.1 转发中不需要,或者 HAProxy 根本没有启用 Keep-Alive。

如果是后者,谁能告诉我为什么它不起作用?

【问题讨论】:

    标签: http keep-alive haproxy


    【解决方案1】:

    来自 HAProxy 的文档:

    默认情况下,HAProxy 在保活模式下运行 持久连接:对于每个连接,它处理每个请求 和响应,并使连接在双方之间保持空闲 响应的结束和新请求的开始。

    以及来自关于 Keep-Alive 的维基百科文章:

    在 HTTP 1.1 中,除非声明,否则所有连接都被视为持久连接 否则

    所以要清楚地回答您的问题:Haproxy 不发送 Connection: Keep-Alive,因为 HTTP 1.1 不需要它,因为除非另有声明,否则所有连接都被认为是持久的。

    如果您与HTTP 1.0 客户端连接,您可能会看到Connection: Keep-Alive 标头。

    【讨论】:

      猜你喜欢
      • 2016-05-11
      • 2016-09-07
      • 1970-01-01
      • 2023-03-07
      • 2021-07-20
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多