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. DNS域名解析系统介绍

    域名系统(D N S)是一种用于T C P / I P应用程序的分布式数据库,它提供主机名字和 I P地址之间的转换及有关电子邮件的选路信息.这里提到的分布式是指在 I n t e r n e t上的 ...

  2. redis安装,以及开机自动启动

    tcl安装 # wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz# tar -xzvf tcl8.6.1-src.tar.gz ...

  3. 用strtotime()和date()函数算出2019年9月的周日日期

    strtotime---用于接收两个参数,第一个参数是格式化的日期数据如:date('Y-m-d'),第二个参数有如'+7 day' 函数版 <?php $firstsunday = strto ...

  4. 双向绑定v-bind

    通过v-model绑定输出数据 <script> export default { data() { return { pagestyle:'https://v4.bootcss.com/ ...

  5. 5、组件注册-@Scope-设置组件作用域

    5.组件注册-@Scope-设置组件作用域 IOC容器默认都是单实例的 /** * * {@link ConfigurableBeanFactory#SCOPE_SINGLETON SCOPE_SIN ...

  6. Self install windows service in .NET c#

    http://stackoverflow.com/questions/4144019/self-install-windows-service-in-net-c-sharp using System; ...

  7. python while for 语句

    while 语句: >>> x = >>> : ... x += ... print(x) ... for 语句: >>> words = ['a ...

  8. uname/hostname

    uname 显示操作系统相关信息的命令. hostname 显示或者设置当前系统的主机名 修改hostname

  9. 【概率论】3-7:多变量分布(Multivariate Distributions Part II)

    title: [概率论]3-7:多变量分布(Multivariate Distributions Part II) categories: Mathematic Probability keyword ...

  10. 利用前端三大件(html+css+js)开发一个简单的“todolist”项目

    一.介绍 todolist,即待办事项.在windows android ios上参考微软家出的那个To-Do应用,大概就是那样的.我这个更简单,功能只有“待办” “已完成”两项,并且是在浏览器打开的 ...