使用基于 cookie 的会话持久性时强制禁用服务器选择?

使用基于 cookie 的会话持久性时强制禁用服务器选择?

假设我有一个像这样的 HTTP 配置块:

listen testing
  bind 1.2.3.4:80
  balance roundrobin
  use-server server1 if { urlp_val(force) eq 1 }
  use-server server2 if { urlp_val(force) eq 2 }
  force-persist if { urlp(offline) -m bool }
  cookie SRVID insert indirect nocache
  server server1 1.2.3.5:9000 cookie 1
  server server2 1.2.3.6:9000 cookie 2

然后,在某个时候,我server2通过套接字接口禁用,以便现在所有与它的连接都被强制转移到server1。但server2实际上并不是离线,它只是在进行维护,应该在重新启用之前进行检查。因此请求http://1.2.3.4/?force=2&offline=true应该代理到server2。但这并没有发生,它被代理到了server1

如果我添加,option persist那么持久性将保留,并且没有人会被引导,server1因为server2并非真正不可用。

server2我怎样才能实现我的目标,即在禁用时自动停止负载平衡流量,但强制条件流量流向它?

相关内容