我想根据单个客户端 IP 地址设置向我的服务器发出的请求数限制。Nginx 有一个limit_req_zone
指令。但是,这个指令实际上会限制平均的命中。如果我将限制设置为rate=6r/m
,则实际上每 10 秒只允许命中一次。
相反,我需要的是每分钟的实际限制。例如,客户端应该能够快速地连续甚至同时发出 3 或 4 个请求,但每分钟不超过 10 个请求。有办法吗?
答案1
nodelay
啊,我认为这可以通过在底部描述的设置来完成limit_req 维基:
如果不需要延迟突发内的超额请求,则应使用选项 nodelay:
limit_req zone=one burst=5 nodelay;