【发布时间】:2019-06-11 20:12:51
【问题描述】:
我想使用 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 }
现在,如果我想根据运行状况良好的服务器数量进行动态处理,我需要根据 nbsrv 转换器替换硬编码的 100。
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))'.
有没有办法在div 运算符中使用nbsrv 作为变量?
【问题讨论】:
标签: haproxy rate-limiting