HAProxy Keep-Alive - 1.5-dev21

时间:2014-01-04 19:41:04

标签: http keep-alive haproxy

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

我们的haproxy.cfg包含以下默认值,我认为应该保持活着:

    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。

如果是后者可以告诉我为什么它不起作用?

1 个答案:

答案 0 :(得分:1)

来自HAProxy的文档:

  

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

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

  

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

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

如果您与Connection: Keep-Alive客户端相关联,则可能会看到HTTP 1.0标头。