Grundeinstellung
Wir führen HAProxy in einem Paar PFsense-Boxen aus. Vorne bedienen wir eine Reihe von IP-Adressen, und für jede IP-Adresse haben wir dahinter ein Paar SSL-Offloader.
Der HAProxy wird zum Lastenausgleich zwischen beiden verwendet. Die Konfiguration sieht ungefähr so aus:
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
Hierdurch werden mehrere zehntausend gleichzeitige Verbindungen bedient.
Hier ist ein Bild:
Probleme
Alle regulären GET-Anfragen an die Loadbalancer werden problemlos durchgestellt. Bei POST-Anfragen (alles mit einem Anfragetext > 50 KB) ist dies jedoch nicht der Fall, da die Verbindung zwischen dem HAProxy und den Backend-Apache-Systemen anscheinend unterbrochen wird.
In einer Laborumgebung konnten wir dies nicht reproduzieren. In der Produktion verschwanden diese Probleme jedoch, als wir die Einstellung für transparente Client-IPs ausschalteten.
Wir versuchen nun herauszufinden, was die Ursache dafür sein könnte. Könnte es ein großes Problem sein (das bezweifle ich) oder liegt es irgendwo (wo?) an einer Fehlkonfiguration?
Für jede Hilfe wäre ich sehr dankbar.
Ruben