带有Haproxy的漏斗方法-速率限制

时间:2019-01-29 14:45:36

标签: haproxy

Nginx使用泄漏存储桶方法来限制请求速率。 Nginx http_limit_req_module

这意味着如果我将限制设置为100 req / sec,然后被120 req / sec淹没,则正常将处理100个请求,但由于503错误而将处理20个请求。

如何使用Haproxy进行设置?

我阅读了很多有关 sc_http_req_rate 的文档,但是由于速率始终为120 req / sec。我总是返回503错误。

frontend main
    bind *:80
    acl foo_limited_req sc_http_req_rate(0) ge 100
    http-request track-sc0 path table Abuse     # Set the URI as the key of the table
    use_backend bk1 if foo_limited_req
    default_backend web

backend web
    server web1 192.168.0.10

backend Abuse
    stick-table type string len 128 size 100K expire 30m store http_req_rate(1s)

backend bk1
     server listenerror 127.0.0.1:81

listen errorlistener
    bind 127.0.0.1:81
    mode http
    errorfile 503 /etc/haproxy/errors/200-tuned.http

我想通过 web 后端提供100 req / sec的流量。还有后端 bk1 的20 req / sec剩余量。

1 个答案:

答案 0 :(得分:0)

您希望将全局设置中的maxconn设置设置为“ X”,这是您希望的速率限制。

有关我的示例,请参见下文

global
  log         127.0.0.1 syslog
  maxconn     1000
  user        haproxy
  group       haproxy
  daemon