本文发布于Cylon的收藏册,转载请著名原文链接~
haproxy作为一个『代理软件』如果当工作与 HTTP 模式下,所有经由haproxy的的连接的请求和响应都取决于 frondend 中配置的 『http_connection_mode』 即 haproxy 中 frontend 与 backend 的组合,而haproxy 支持 3 种连接模式:
- KAL keep alive: frontend 中配置为
http-keep-alive
; 这是默认模式,这也是http中的keepalive 表示所有请求和响应都得到处理,连接保持打开状态,但在响应和新请求之间处于空闲状态。 - SCL server close : frontend 中配置为
http-server-close
; 接收到响应结束后,面向服务器的连接关闭,但面向客户端的连接保持打开状态 - CLO close: frontend 中配置为
httpclose
;连接在响应结束后关闭,并在两个方向上附加 “Connection: close” 。
下列矩阵表示的是通过 frondend 与 backend 之间两端的代理模式,这个模式是对称的
| KAL | SCL | CLO
----+-----+-----+----
KAL | KAL | SCL | CLO
----+-----+-----+----
mode SCL | SCL | SCL | CLO
----+-----+-----+----
CLO | CLO | CLO | CLO
对于http选项的说明
选项 | 说明 |
---|---|
forwardfor | 这个选项同时存在于backend 与 frontend端,但backend中的优先级超过frontend 如果同时设置了这个参数,那么 backend段的子参数将优先与 frontend 一端 |
httpchk | 启用http协议检查来检测server的健康状态,默认情况下状态检查是仅建立一个tcp连接 |
httpclose | 这个选项代表了haproxy 对于http协议持久连接方便的配置 |
Reference:configuration.txt
本文发布于Cylon的收藏册,转载请著名原文链接~
链接:https://www.oomkill.com/2023/01/haproxy-http-connection-mode/
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」 许可协议进行许可。