On Fri, Jul 10, 2015 at 08:39:59AM +0200, joris dedieu wrote:
> 2015-07-08 15:28 GMT+02:00 Bastien Chong <[email protected]>:
> > Hi,
> >
> > I'd like to rate-limit a specific path, by rate-limit I mean continue to
> > accept X req/s, and buffer or drop subsequent requests over the limit. That
> > is was "rate-limit sessions <rate>" does, but is frontend-wise.
> 
> It's not optimal but you can use a "pipe"
> 
> frontend myfront
>    ...
>    use_backend pipe_in if { condition }
> 
> backend pipe_in
>    server pipe_out 127.0.0.1:8080
> 
> listen pipe_out
>     bind 127.0.0.1:8080
>     rate-limit sessions 10
>     server ...

That's indeed the principle to apply normally, also don't forget to set
a maxconn value on the pipe_out server so that it queues extra connections.
It's also possible to set a maxqueue and a timeout queue to decide to abort
requests waiting too long for a slot.

Regards,
Willy


Reply via email to