为了保护服务器不被刷流量,或者业务方面的一些限制,需要做一些限速措施。

一、http 请求并发连接数模块:ngx_http_limit_conn_module

这个模块可以设置每个定义的变量(比如客户端ip)的并发连接数,比如:某个客户端ip在同一时间内的连接数不能超过某个值。

语法:

  1. 定义限制链接区域:
Syntax:	limit_conn_zone key zone=name:size;
Default: —
Context: http
  1. 设置连接数限制:
Syntax:	limit_conn zone number;
Default: —
Context: http, server, location

示例:

# 根据客户端ip进行限制,区域名称为perip,总容量为10m
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server {
...
# 使用perip区域名称(zone name),同一时间并发数不得超过10
limit_conn perip 10;
limit_conn perserver 100;
}

二、tcp 请求并发连接数模块:ngx_stream_limit_conn_module(since 1.9.3)

这是自 nginx 1.9.3 提供的 TCP负载均衡的限制流连接数模块,用法等同于ngx_http_limit_conn_module

三、http 请求限制模块:ngx_http_limit_req_module

这个模块用来限制每个被定义的变量(比如客户端ip)的访问速率,比如:通俗点来讲,每个ip可以每秒请求几次。

语法:

  1. 定义限速区:
Syntax:	limit_req_zone key zone=name:size rate=rate;
Default: —
Context: http
  1. 设置限速:
Syntax:	limit_req zone=name [burst=number] [nodelay];
Default: —
Context: http, server, location

示例:


#limit_req_zone 为定义一个限速区域,binary_remote_addr代表一个客户端ip,zone perip为区域名称,10m为总容量,rate=1r/s代表每秒只接受1个请求
limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s;
limit_req_zone $server_name zone=perserver:10m rate=10r/s;
server {
...
# 代表使用zone为preip的配置,设置的速率1个每秒,缓冲区5个请求,如果超过速率和缓存区大小,直接返回503异常码
limit_req zone=perip burst=5 nodelay;
# 使用persever的配置,10个请求每秒,缓冲区为10个请求,没有nodelay参数,则会将请求延迟处理
limit_req zone=perserver burst=10;
}

四、nginx http 核心模块:ngx_http_core_module

使用到了其中的limit_rate命令,可以限制响应速率比如:

limit_rate 1024K;

代表单词请求响应量最多为1024K。

参考链接

Nginx 限速模块一览的更多相关文章

  1. Nginx限速模块初探

    Nginx限速模块分为哪几种?按请求速率限速的burst和nodelay参数是什么意思?漏桶算法和令牌桶算法究竟有什么不同?本文将带你一探究竟.我们会通过一些简单的示例展示Nginx限速模块是如何工作 ...

  2. [转帖]Nginx rewrite模块深入浅出详解

    Nginx rewrite模块深入浅出详解 https://www.cnblogs.com/beyang/p/7832460.html rewrite模块(ngx_http_rewrite_modul ...

  3. nginx 限速最容易理解的说明

    nginx 限速研究汇报 写在前面 这两天服务器带宽爆了,情况如下图: 出于降低带宽峰值的原因,我开始各种疯狂的研究nginx限速.下面是我研究过程中的心得!(花了好几个小时的时间写的人生第一篇技术类 ...

  4. Nginx (限速)限制并发、限制访问速率、限制流量

    Nginx 限制并发访问速率流量,配置还是简单的,看下Nginx文档根据文中这三个模块对照看一下就可以,Nginx限速使用的是漏桶算法(感兴趣可以看下文末的参考资料),需要注意的是:当需要进行限速操作 ...

  5. 基于Nginx dyups模块的站点动态上下线并实现简单服务治理

    简介 今天主要讨论一下,对于分布式服务,站点如何平滑的上下线问题. 分布式服务 在分布式服务下,我们会用nginx做负载均衡, 业务站点访问某服务站点的时候, 统一走nginx, 然后nginx根据一 ...

  6. Nginx 切片模块、断点续传

    熟悉 CDN 行业主流技术的朋友应该都比较清楚,虽然 Nginx 近几年发展的如日中天,但是基本上没有直接使用它自带的 proxy_cache 模块来做缓存的,原因有很多,例如下面几个: 不支持多盘 ...

  7. nginx事件模块分析(一)

    nginx ngx_events_module模块分析 ngx_events_module模块是核心模块之一,它是其它所有事件模块的代理模块.nginx在启动时只与events模块打交道,而由even ...

  8. mac下Nginx+lua模块编译安装

    Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而成,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘.nginx_lua_module是由淘宝的工程师清无(王晓哲) ...

  9. nginx添加模块 (非覆盖安装)

    nginx添加模块(非覆盖安装) 原已经安装好的nginx,现在需要添加一个未被编译安装的模块: 查看原来编译时都带了哪些参数# /usr/local/nginx/sbin/nginx -V ngin ...

随机推荐

  1. Mybatis(综合案例)

    MyBatis本是apache的一个开源项目iBatis,2010年这个项目有Apache software foundation 迁移到了Google code,并改名MyBatis.2013年11 ...

  2. CF724D. Dense Subsequence[贪心 字典序!]

    D. Dense Subsequence time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  3. [No00006D]下载离线版的github for windows【以Github for Windows 3.0.110.为例】

    目录 先上地址后讲原理: 原理: 11个目录的文件怎么一口气下载呢? 最后,把下好的文件批量名,同时将GitHub.exe.manifest也放到软件根目录下(与GitHub.exe同级): 今后的猜 ...

  4. PAT 1034. 有理数四则运算(20)

    本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只 ...

  5. 记一次事件委托在 ios 下的兼容 bug

    项目中碰到的兼容类 bug,记录一二. 页面上有几个同类型的控件,点击它们会触发一些事件,很显然,事件委托优于批量绑定.为了图方便,我将 click 事件绑定到了 document.body 上(绑定 ...

  6. route使用详解

    route命令用于显示和操作IP路由表.要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现.在Linux系统中,设置路由通常是 为了解决以下问题:该Linu ...

  7. Hadoop---Google MapReduce(转)

    1. MapReduce是干啥的 因为没找到谷歌的示意图,所以我想借用一张Hadoop项目的结构图来说明下MapReduce所处的位置,如下图. Hadoop实际上就是谷歌三宝的开源实现,Hadoop ...

  8. nginx 报错 HTTP ERROR 500 (PHP数组简写模式)

    同样的代码放在Apache上执行可以执行,在nginx上面就报错了. 百度出来一堆结果貌似都不对,然后只有注释代码->运行程序,一步步找到问题所在 $buffer = []; 这一步报错了 原来 ...

  9. PHPExcel读取excel文件

    <?php set_time_limit(0); $dir = dirname(__FILE__);//当前脚本所在路径 require $dir."/PHPExcel_1.8.0/C ...

  10. Map工具系列-06-销售营改增历史数据处理工具

    所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...