我们正在运行如上所述的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。
如果是后者可以告诉我为什么它不起作用?
答案 0 :(得分:1)
来自HAProxy的文档:
默认情况下,HAProxy在保持活动模式下运行 持久连接:对于每个连接,它处理每个请求 和响应,并使连接空闲在两侧之间 响应结束并开始新请求。
来自维基百科关于Keep-Alive的文章:
在HTTP 1.1中,除非声明,否则所有连接都被视为持久连接 否则
因此,要清楚地回答您的问题:Haproxy不发送Connection: Keep-Alive
,因为HTTP 1.1
不需要它,因为除非另有声明,否则所有连接都被视为持久性。
如果您与Connection: Keep-Alive
客户端相关联,则可能会看到HTTP 1.0
标头。