nginx限流配置

配置示例:
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
server {
location /search/ {
limit_req zone=one burst=5 nodelay;
}
}
nginx的限流配置的几个参数:
rate:在不做其他配置时,他表示没多少秒(毫秒处理一个请求),比如2r/s表示500mm处理一个请求,如果瞬时(比如说1mm内)来了5个请求,它也只能处理一个请求,其他的会被丢弃,就是实际这个请求只要处理2mm;
burst:如上所述,这种瞬时并发处理有问题,成功率太低,那么就增加一个“缓存”,用来缓存瞬时并发过来来不及处理的请求,比如burst设为4,那么其余的4个请求可以被缓存,等到之后每隔500mm处理一个,这样就能提高请求的处理成功率。
nodelay:设置的burst可以提高并发的处理成功率,但是后面的请求都要等至少500mm才能被处理到,效率太低,nodelay就是设置不用都等500mm,可以直接被处理,可以提高处理效率,但是这只是能提高“瞬时处理速度”,平均速度还是受rate限制。并且,设置的nodelay,当brust满了后后续的请求会直接被丢弃,不会排队等待。

你可能感兴趣的:(nginx限流配置)