如果活跃用户数量超过所需阈值,我想设置新用户连接限制。用户通过 http 连接到负载均衡器。我使用
stick-table
来限制每个用户的 http 请求量(通过唯一的 ip):
frontend echo
bind *:8881
mode http
stick-table type ipv6 size 100 expire 100s store http_req_rate(10s)
http-request track-sc0 src
http-request deny deny_status 429 if { src_http_req_rate gt 100 }
use_backend echo
如何获取
stick-table
中包含的“活跃”用户的当前IP地址数量(看起来我必须获取表的当前大小)?
table_cnt
在这里可能会有帮助http-request deny deny_status 429 if { table_cnt gt 80 }
在您的粘表的情况下,如果您在过去 100 秒内获得超过 80 个唯一 IP,这将阻止用户。