Я хочу реализовать систему ограничения скорости, используя липкую таблицу HAProxy. Учтите, что у меня 100 серверов и ограничение в 10 запросов на сервер, ACL будет
http-request track-sc0 int(1) table GlobalRequestsTracker
http-request deny deny_status 429 if { sc0_http_req_rate(GlobalRequestsTracker),div(100) gt 10 }
Теперь, если я хочу сделать это динамическим в зависимости от количества исправных серверов, мне нужно заменить жестко закодированный 100
на nbsrv
конвертер.
http-request track-sc0 int(1) table GlobalRequestsTracker
http-request deny deny_status 429 if { sc0_http_req_rate(GlobalRequestsTracker),div(nbsrv(MyBackend)) gt 10 }
Но я получаю ошибку:
error detected while parsing an 'http-request deny' condition : invalid args in converter 'div' : expects an integer or a variable name in ACL expression 'sc0_http_req_rate(GlobalRequestsTracker),div(nbsrv(MyBackend))'.
Есть ли способ использовать nbsrv
в качестве переменной внутри оператора div
?