haproxy tcp keepalive
feat
- 使用內核協議棧的tcp keepalive特性,在tcp連接上,定時發送keepalive消息
- 當啟用option http-keep-alive時,且正確配置了timeout client,option tcpka基本不會被觸發
- tcp keepalive的相關參數,使用系統中的配置
- tcp_keepalive_time 連接空閑多久,才會發送keepalive消息,默認7200s;當連接上有數據時,該計時器會被重置
- tcp_keepalive_probes 每次開始發送keepalive消息時,多少個包沒回復,就認為對端已經無響應,需要關閉連接了,默認9個包,即相當於9*75s, 約等於11分鍾,才會斷開連接
- tcp_keepalive_intvl 發送keepalive消息時的間隔,默認75s
- 通過clitcpka, srvtcpka, 或者tcpka來配置
配置項
- clitcpka 僅在客戶端和listener的連接上,啟用SO_KEEPALIVE
- srvtcpka 僅在haproxy和后端的連接上,啟用SO_KEEPALIVE
- tcpka 配置在defaults/listen中時,客戶端<->listener, haproxy<->后端,的連接都會啟用SO_KEEPALIVE,配置在frontend 同clitcpka;配置在backend 同srvtcpka