Nginx请求限制配置

请求限制可以通过两种方式来配置,分别是  连接频率限制和请求频率限制

首先我们要知道什么是http请求和连接,浏览器和服务端首先通过三次握手完成连接,然后发起请求,传输请求参数,服务端接受请求,返回数据到客户端浏览器,这就是  请求和连接。

现在我们来分别看下  连接频率限制和 请求频率限制是怎么实现。

1. 连接频率限制
配置语法:limit_conn_zone key zone=name:size; 
理解: 我们要限制连接数,那么需要根据一个凭证来限制,比如我们的身份证,假设我限制这一个路口只有xx地区的身份证的不能通过,所以 我们将 key 作为我们的限制依据,例如可以是 ip地址, zone=name 这个是 为这个限制规则设置一个名字,方便下面的语法来调用。 size:是为这个限制开辟多少空间来存储这些 key 信息。
默认配置:没有配置
配置路径: http下

匹配配置语法: limt_conn name number;
理解:通过上面的语法配置了一个规则,这里通过这个语法来匹配该规则,name是上面定义的连接频率限制规则的name,number是限制连接的个数。
匹配默认配置: 没有配置
匹配配置路径: http、server、location下

2. 请求频率限制
配置语法: limit_req_zone key zone=name:size rate;
理解:语法和上面的类似,不同的是在末尾添加了一个 rate速率,例如 1r/s,1秒内限制仅通过一个,
默认配置: 没有配置
配置路径: http下

匹配配置语法: limt_req zone=name 【burst】【nodelay】;
理解:通过上面的语法配置了一个规则,这里通过这个语法来匹配该规则,name是上面定义的请求限制规则的name,burst和nodelay用中括号包围,表明是 超过本次限制的可以允许多少个请求在下一个频率执行,其余的直接pass
匹配默认配置: 没有配置
匹配配置路径: http、server、location下

---------------------------------------------------------------------------------------------------------------------------------

demo配置

1. 配置,在那个 default.conf文件中添加以下配置

2. 重新加载nginx服务
service nginx reload;

3. 使用ab测试工具
输入一下命令  ab -n 20 -c 20 http://192.168.78.xxx/1.html 查看结果
    方便的话可以用另一个窗口查看日志,例如  使用  tail -f 命令即可,具体如下

从这个图中可以看出,我们设置请求20次,发现尽管我们设置了 连接频率限制但是这个不是绝对的。


下面我们来测试 请求频率,修改配置如下



再次按照上面的步骤来看看效果


从这个图中可看出  我们请求了20次,结果是 失败有19次,再看看日志打印结果,可以更加清楚看出。


下面我们再添加 延迟参数看看效果,修改配置如下,设置了延迟3个请求到下一秒

现在重新加载nginx,打印日志,看看结果

可以看到,20个请求有4个通过,表示配置成功,看看日志


至此,nginx请求限制配置完毕。

Nginx请求限制配置的更多相关文章

  1. nginx请求转发配置

    以下为无ssl证书配置的请求转发 server { listen ; server_name api.****.com; #以下为指定请求域名匹配到某一个端口 #location ~* /union ...

  2. Nginx 限制并发连接和并发请求数配置

    Nginx限制并发连接和并发请求数配置   by:授客  QQ:1033553122   测试环境 nginx-1.10.0 配置介绍 查看是否内置模块 # pwd /mnt/nginx-1.10.0 ...

  3. Nginx详解八:Nginx基础篇之Nginx请求限制的配置语法与原理

    Nginx的请求限制: 连接频率的限制:limit_conn_module 配置语法:limit_conn_zone key zone=name:size;默认状态:-配置方法:http 配置语法:l ...

  4. nginx配置之站点服务请求功能配置

    站点服务请求功能配置:html/ nginx.conf中的http{}中的server{}: server { listen 85; server_name localhost; #charset k ...

  5. nginx入门篇----nginx服务器基础配置

    1.nginx.conf文件结构...                         #全局块  events{  ...  }  http                      #http块{ ...

  6. Tomcat的SSL证书配置以及Tomcat+Nginx实现SSL配置

    把jks上传到java容器在的服务器上,路径只要不是webapps下就可以,然后到conf目录下server.xml里配置 <Connector port=" protocol=&qu ...

  7. nginx反向代理配置及优化

    nginx反向代理配置及优化前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反 ...

  8. LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  9. nginx虚拟主机配置

    nginx虚拟主机配置   虚拟主机的概念虚拟主机,就是把一台物理服务器划分成多个"虚拟"的服务器,每一个虚拟主机都可以有独立的域名和独立的目录nginx虚拟主机的配置nginx的 ...

随机推荐

  1. [Java]算术表达式组建二叉树,再由二叉树得到算式的后序和中序表达式

    Entry类: package com.hy; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...

  2. 微信小程序之地址联动

    这就是我们要实现的效果 <view class="consignee"> <!-- consignee 收件人 --> <text>收件人: & ...

  3. Python 安装 for Linux

    make后报错: Failed to build these modules:_multiprocessing   binascii           zlib 下载http://www.zlib. ...

  4. gcc posix sjij for MSYS 9.2.1+

    mingw gcc 32位 版本 9.2.1 以上的 以后都在 github 上发布 https://github.com/qq2225936589/gcc-i686-posix-sjlj-for-M ...

  5. Python进阶学习之特殊方法实例详析

    Python进阶学习之特殊方法实例详析 最近在学习python,学习到了一个之前没接触过的--特殊方法. 什么是特殊方法?当我们在设计一个类的时候,python中有一个用于初始化的方法$__init_ ...

  6. eclipse搭建简单的web服务,使用tomcat服务

    打开eclipse,新建web project, 若本机安装的eclipse版本高,jdk版本低,提示当前版本不适合,解决方法,通过Windows搜索Java,点击配置Java,之后如下图:

  7. python爬虫播放mp3

    我不明白这里出了什么问题.每次我试图在pyglet播放声音,我得到以下错误:WAVEFormatException: AVbin is required to decode compressed me ...

  8. 微信小程序页面左右滑动事件

    微信小程序提供了页面的上下滚动的事件,在页面的js文件中, page({ onPageScroll(e) { console.log(e.scrollTop) } }) 但是不是滑动事件,滑动事件需要 ...

  9. OpenStack组件——cinder存储服务

    1.cinder 介绍 1)理解 Block Storage 操作系统获得存储空间的方式一般有两种: (1)通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区.格式化.创建文 ...

  10. DFS(深度优先搜索)和BFS(广度优先搜索)

    深度优先搜索算法(Depth-First-Search) 深度优先搜索算法(Depth-First-Search),是搜索算法的一种. 它沿着树的深度遍历树的节点,尽可能深的搜索树的分支. 当节点v的 ...