1.限制请求次数——limit_req_zone模块

  a.意义:limit_req_zone 表示限制单位时间内的请求数,即速率限制,采用的漏桶算法

  a.在 conf/nginx.conf 配置文件中添加

http {

    ......

    #限制请求次数参数
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/m; ...... server { ...... location /printProducer { ...... #限制请求次数
limit_req zone=one burst=10 nodelay;
#自定义返回码
limit_req_status 598; ...... }

  b.参数说明:

    $binary_remote_addr:表示通过remote_addr这个标识来限制同一客户端ip请求数

    zone=one:10m:表示生成一个大小为10M,名字为one的内存区域,用来存储访问的频次信息

    rate=5r/m:表示允许相同标识的客户端的访问频次,这里限制的是每秒1次,还可以有比如1r/s

    zone=one:表示使用哪个配置区域来做限制,与上面 limit_req_zone 里的name对应

    burst=5:表示设置一个大小为5的缓冲区当有大量请求(爆发)过来时,超过了访问频次限制的请求可以先放到这个缓冲区内

    nodelay:如果设置,超过访问频次而且缓冲区也满了的时候就会直接返回503,如果没有设置,则所有请求会等待排队

    limit_req_status 598:设置拒绝请求的返回值。值只能设置 400 到 599 之间(默认是503)

2.限制下载速度

  a.在 conf/nginx.conf 配置文件中添加

http {

    ......

    server {

        ......

        location /download{

            ......

            #不限速阈值
limit_rate_after 10m;
#超过阈值限制速度
limit_rate 10k; ...... }

  b.参数说明:

    limit_rate_after 10m:表示前 10m 大小时不限速

    limit_rate 10k:表示超过 limit_rate_after 后以 10kb/s 限速

3.参考文章:

  https://www.cnblogs.com/biglittleant/p/8979915.html

  https://my.oschina.net/gaga/blog/495444

限流保护——nginx限流模块的更多相关文章

  1. Nginx限流

    文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 在当今流量徒增的互联网时代,很多业务场景都会涉及到高并发.这个时候接口进行限流是非常有必要的,而限流是Ngin ...

  2. 死磕nginx系列--nginx 限流配置

    限流算法 令牌桶算法 算法思想是: 令牌以固定速率产生,并缓存到令牌桶中: 令牌桶放满时,多余的令牌被丢弃: 请求要消耗等比例的令牌才能被处理: 令牌不够时,请求被缓存. 漏桶算法 算法思想是: 水( ...

  3. nginx限流模块(防范DDOS攻击)

    Nginx限流模式(防范DDOS攻击) nginx中俩个限流模块: 1.ngx_http_limit_req_module(按请求速率限流) 2.ngx_http_limit_conn_module( ...

  4. Nginx限流办法

    Nginx 限流 电商平台营销时候,经常会碰到的大流量问题,除了做流量分流处理,可能还要做用户黑白名单.信誉分析,进而根据用户ip信誉权重做相应的流量拦截.限制流量.Nginx自身有的请求限制模块ng ...

  5. 限流(四)nginx接入层限流

    一.nginx限流模块 接入层指的是请求流量的入口,我们可以在这里做很多控制,比如:负载均衡,缓存,限流等. nginx中针对限流有两个模块可以处理: 1)ngx_http_limit_req_mod ...

  6. nginx限流方案的实现(三种方式)

    通过查看nginx官方文档,小弟查看到了三种nginx限流方式. 1.limit_conn_zone 2.limit_req_zone 3.ngx_http_upstream_module 前两种只能 ...

  7. [转]Nginx限流配置

    原文:https://www.cnblogs.com/biglittleant/p/8979915.html 作者:biglittleant 1. 限流算法 1.1 令牌桶算法 算法思想是: 令牌以固 ...

  8. 图解Nginx限流配置

    本文以示例的形式,由浅入深讲解Nginx限流相关配置,是对简略的官方文档的积极补充. Nginx限流使用的是leaky bucket算法,如对算法感兴趣,可移步维基百科先行阅读.不过不了解此算法,不影 ...

  9. Sentinel整合Dubbo限流实战(分布式限流)

    之前我们了解了 Sentinel 集成 SpringBoot实现限流,也探讨了Sentinel的限流基本原理,那么接下去我们来学习一下Sentinel整合Dubbo及 Nacos 实现动态数据源的限流 ...

随机推荐

  1. P3183 [HAOI2016]食物链[拓扑/记忆化搜索]

    题目来源:洛谷 题目描述 如图所示为某生态系统的食物网示意图,据图回答第1小题现在给你n个物种和m条能量流动关系,求其中的食物链条数.物种的名称为从1到n编号M条能量流动关系形如a1 b1a2 b2a ...

  2. C# 截图不失真

    Bitmap bmp = new Bitmap(@"E:\2222.jpg"); Bitmap bmp2 = bmp.Clone(new Rectangle(10 + 80, 15 ...

  3. 从package.json中获取属性

    var pjson = require('./package.json'); console.log(pjson.version); 详见:https://stackoverflow.com/ques ...

  4. C语言calloc()函数:分配内存空间并初始化——stm32中的应用

    经常在代码中看到使用malloc来分配,然后memset清零,其实calloc更加方便,一句顶两句~ 头文件:#include <stdlib.h> calloc() 函数用来动态地分配内 ...

  5. 19、属性赋值-@PropertySource加载外部配置文件

    19.属性赋值-@PropertySource加载外部配置文件 加载外部配置文件的注解 19.1 [xml] 在原先的xml 中需要 导入context:property-placeholder 声明 ...

  6. javascript---操作节点

    快捷键:jiedian(节点) 节点增删改appendChild() insertBefore() replaceNode() <!DOCTYPE html><html lang=& ...

  7. aspnet_regiis命令使用

    1.使用aspnet_regiis.exe加密web.config文件 http://www.cnblogs.com/MinSentinel/archive/2008/08/01/1258168.ht ...

  8. RX232串口发送

    在进行工程调试的时候有时候需要对变量进行观察,SingnaTap II Logic Analyzer 只能对管脚进行观察,所以要观察内部的变量必须把内部的变量进行输出.一种方法是直接把变量定义成管脚通 ...

  9. centos 利用iptables来配置linux禁止所有端口登陆和开放指定端口的方法

    1.关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放. 下面是命令实现: iptables -P INPUT DROPiptables -P FORWARD DROPiptabl ...

  10. element-ui遮罩层el-dialog的使用

    template <el-button type="text" @click="dialogVisible = true">点击打开 Dialog& ...