I'm trying to implement a similar kind of throttling and I'm not having the expected result :
I have lowered the threshold to something very low, 5 reqs in 10 sec.
tcp-request inspect-delay 5s
acl is_sys path_beg -i /sys
acl too_many_req sc0_gpc0_rate() gt 5
acl mark_seen sc0_inc_gpc0 gt 0
stick-table type string size 100k store gpc0_rate(10s)
tcp-request content track-sc0 hdr(Authorization) if METH_GET is_sys
use_backend slow_down if too_many_req mark_seen
[...]
backend slow_down
mode http
timeout tarpit 2s
http-request tarpit
I start sending some concurrent requests (20 concurrent, average of 50req/s) and do a show table :
0xe3663c: key=Basic\ xxxxxxxxxxxxxx use=0 exp=0 gpc0_rate(10000)=0
It stays like that and do not increase. It seems like the mark_seen acl is not kicking in or something, any idea ?