Hello Sir,

I am trying to implement rate limiting feature using HAroxy. My requirement
is to do rate limiting using a custom header . I have created the below
config file.

I have configured 40 request are allowed in 10 sec and anything above 40
should give 429 error.

But I am facing one problem while implementing this. My test scenario is as
follows :

Sl No. Number of Request/ 10 sec Result
1 30 All request passed
2 45 40 request pass and 5 gave 429 error code
3 60 All request gave 429
4 25 All request passed

In the scenario number 3 my expectation is 40 request should pass and 20
request should fail. But its failing all the requests. Remaining all
scenarios are working as expected.Am I missing something ? Please help .


Configuration :

frontend localnodes
                bind *:80
                mode http
                default_backend nodes
    acl document_request path_beg -i /
    acl is_upload hdr_beg(CustomHeader) -i customKey
    acl too_many_uploads_by_user sc0_gpc0_rate() gt 40
    acl mark_seen sc0_inc_gpc0 gt 0
    stick-table type string size 100k expire 1s store gpc0_rate(10s)
    tcp-request content track-sc0 hdr(CustomHeader) if METH_GET or
METH_POST document_request is_upload
    use_backend ease-up-y00 if mark_seen too_many_uploads_by_user

backend nodes
    mode http
    balance roundrobin
    option forwardfor
    server srv1 127.0.0.1:8081 check

backend ease-up-y00
    mode http
    errorfile 503 /etc/haproxy/errors/429rate.http



Thank you in Advance.
Samrat

Reply via email to