基本设置
我们在一对 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 设置时,这些问题就消失了。
我们现在正在尝试找出导致这种情况的原因。可能是因为某个大问题(我对此表示怀疑)还是某个地方(哪里?)的配置错误。
任何帮助都将不胜感激。
鲁本