Базовая настройка
Мы запускаем HAProxy в паре боксов PFsense. Спереди мы обслуживаем кучу 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-адреса клиента.
Сейчас мы пытаемся выяснить, что может быть причиной этого. Может быть, это большая (сомневаюсь) или какая-то неправильная конфигурация где-то (где?).
Любая помощь будет принята с благодарностью.
Рубен