Допустим, у меня есть такой блок конфигурации 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
но принудительно использовать условный трафик, когда он отключен?