Greetings,

I'd use the following four lines in a backend:
        stick-table type integer size 1 expire 1m store http_req_rate(1s)
        tcp-request content track-sc0 be_id()
        acl enough_log_data sc_http_req_rate(0) gt 2
        http-request deny if enough_log_data

If you want to use that in a frontend instead just replace the be_id with fe_id. That function doesn't really serve any purpose other then to return a static value to be stored in the stick table.

That returns a 403 error when the limit is exceeded... I don't think there is a good way to return a 429 response without making it substantially more complicated.

- Chad

On 01/19/2016 05:47 PM, CJ Ess wrote:
I'm looking to limit requests per second on a per-backend basis (not per IP or per url, just per second).

The backend itself just forwards requests w/ samples of performance data to a logging backend - beyond X per second we have all the samples we need and can discard the rest (pref HTTP code 429) so as not to overload the logger process.

Anyone have a quick example how to do that?




Reply via email to