限制 HAProxy 上特定路径的每秒最大请求数

限制 HAProxy 上特定路径的每秒最大请求数

我正在尝试实现这种情况:

仅在特定路径上,我在前端每秒收到稳定的 9 个请求。一切正常,使用常规后端。我现在每秒收到 11 个请求,我想拒绝任何超过 10 个的请求。但仍然想继续回复最多每秒 10 个请求。

我发现并尝试实施的一切(例如:https://blog.codecentric.de/en/2014/12/haproxy-http-header-rate-limiting/) 是黑白解决方案,一旦达到速率,它就会丢弃所有内容。因此,它是一种针对 DDOS 和滥用者的保护措施,但不是真正的速率限制解决方案。

有什么办法可以实现吗?
PS:使用 HAproxy 1.5.8

答案1

如果您想使用rate-limit sessions,以下内容对您来说可行吗?

frontend http_in
   bind 0.0.0.0:80
   acl is_path url_beg /path/example/
   use_backend forwarder if is_path

backend forwarder
   server localhost 127.0.0.1:4444 send-proxy

frontend limit_path_backend
   bind 127.0.0.1:4444 accept-proxy
   rate-limit sessions 10
   default_backend webnodes

相关内容