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剩余量。
答案 0 :(得分:0)
您希望将全局设置中的maxconn设置设置为“ X”,这是您希望的速率限制。
有关我的示例,请参见下文
global
log 127.0.0.1 syslog
maxconn 1000
user haproxy
group haproxy
daemon