HAProxy能夠提供到對後端服務器的心跳檢查(即端口監測),默認狀況下沒有,須要手動在配置文件中配置,例如:
backend new_server
server first 10.1.1.1:1080 check inter 1000
server second 10.1.1.2:1080 check inter 1000
check inter 心跳檢查配置項,1000以毫秒爲單位,整體意思爲:每隔1000ms檢查一次10.1.1.1:1080和10.1.1.2:1080進程是否存活。檢查方式爲:使用tcp鏈接後臺服務器端口,若是能創建鏈接,就認爲存活且立刻關閉鏈接。
然而,在使用中發現一個問題:
1.4.23版本的haproxy在進行心跳檢查後,關閉爲了進行心跳時創建的tcp鏈接會發送一個RST分組。這個自己不會影響後端服務器的正常功能,可是絕大多數服務器收到這個分組後,會拋出異常,若是你的日誌打印這種異常就會致使日誌量很大(由於心跳很頻繁,且每次心跳就會查收這個異常),且這種異常不容易定位,致使你」人心惶惶「!!!
1.4.24版本中修復了這個問題,它在心跳檢查tcp鏈接時,沒有達成三次握手,不向服務器發送最後一個ack分組,就立刻發送RST分組,這樣服務器認爲鏈接沒有創建,不會拋出異常。
若是你們要使用HAProxy建議使用1.4.24版本。後端