配置示例:
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限流配置
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...