假设我有一个像这样的 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
我怎样才能实现我的目标,即在禁用时自动停止负载平衡流量,但强制条件流量流向它?