Nginx使用漏桶方法来限制请求速率。模块。
这意味着,如果我将限制设置为100 req/秒,然后被120 req/秒淹没,则100个请求将被正常处理,而20个请求将被503个错误处理。
我怎样才能用Haproxy来设置这个呢?
我读了很多关于sc_http_req_rate的文档,但因为速度总是120雷克/秒。我总是返回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/秒的流量。bk1后端的20 req/秒盈余。
发布于 2019-01-29 18:45:39
您需要将全局设置中的maxconn设置设置为"X",这是您想要的速率限制。
下面是我的一个例子:
global
log 127.0.0.1 syslog
maxconn 1000
user haproxy
group haproxy
daemonhttps://stackoverflow.com/questions/54423581
复制相似问题