在 TCP 模式+「透明客戶端 IP」下斷開與 HAProxy 的連接

在 TCP 模式+「透明客戶端 IP」下斷開與 HAProxy 的連接

基本設定

我們在一對 PFsense 盒子中運行 HAProxy。在前面,我們提供一組 IP 位址,對於每個 IP 位址,我們在其後面都有一對 SSL 卸載器。

HAProxy 用於兩者之間進行負載平衡。配置大致是這樣的:

frontend FOO_FRONT_80
    bind            5.5.5.5:80 name 5.5.5.5:80  transparent 
    mode            tcp
    log             global
    maxconn         10000
    timeout client  30000
    use_backend FOO_BACK_80



backend FOO_BACK_80
    mode            tcp
    log             global
    option          log-health-checks
    balance         source
    timeout connect 30000
    timeout server  30000
    retries         3
    source ipv4@ usesrc clientip
    server          FOO_LB_001 10.0.0.21:80 check inter 10000  weight 100 
    server          FOO_LB_002 10.0.0.22:80 check inter 10000  weight 100 

這是為數萬個同時連接提供服務的。

這是一張圖片:

在此輸入影像描述

問題

對負載平衡器的所有常規 GET 請求都會順利完成。但 POST 請求(請求正文 > 50kBytes 的任何內容)不會,HAProxy 和後端 Apache 之間的連接顯然被切斷。

在實驗室環境中,我們無法重現這一點。但在生產中,當我們關閉透明客戶端 IP 設定時,這些問題就消失了。

我們現在正在嘗試找出可能導致此情況的原因。可能是一個很大的問題(我對此表示懷疑),或者是某個地方的配置錯誤(在哪裡?)。

任何幫助將不勝感激。

魯本

相關內容