HAProxy :防止粘附到备份服务器

HAProxy : Prevent stickiness to a backup server

我遇到了 HAProxy (1.8) 的配置问题。

上下文:

问题:

这真让我心烦意乱...

所以我的问题是:如何防止 HAProxy 将客户端粘在后端的备份服务器上?

请在下面找到配置示例:

defaults
  option redispatch

frontend fe_test
  bind 127.0.0.1:8081
  stick-table type ip size 1m expire 1h
  acl acl_test  hdr(host) -i whatever.domain.com
  ...
  use_backend be_test if acl_test
  ...

backend be_test
  mode http
  balance roundrobin
  stick on hdr(X-Real-IP) table fe_test
  option httpchk GET /check
  server test-01 server-01.lan:8080 check
  server test-02 server-02.lan:8080 check
  server maintenance 127.0.0.1:8085 backup

(我已经尝试过给备份服务器增加较低的权重,但并没有解决这个问题。)

我在文档中读到 "stick-on" 关键字有一些 "if/unless" 选项,也许我可以用它来写一个基于后端服务器名称的条件,但我不知道要使用的语法,或者即使它是可能的。

欢迎任何想法!

我真傻!我对 stick table 配置如此着迷,以至于我没想到要查看服务器选项...

有一个简单的关键字完美解决了我的问题:不粘

Never add connections allocated to this sever to a stick-table. This may be used in conjunction with backup to ensure that stick-table persistence is disabled for backup servers.

所以我的配置示例的最后一行简单地变成了:

server maintenance 127.0.0.1:8085 backup non-stick

...现在一切如我所愿。