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. iOS即时通讯之CocoaAsyncSocket源码解析三

    原文 前言 本文实例Github地址:即时通讯的数据粘包.断包处理实例. 本文旨以实例的方式,使用CocoaAsyncSocket这个框架进行数据封包和拆包.来解决频繁的数据发送下,导致的数据粘包.以 ...

  2. [转]html中meta作用

    meta是html语言head区的一个辅助性标签.几乎所有的网页里,我们可以看到类似下面这段的html代码:  <head>  <meta http-equiv="cont ...

  3. 【转】java导出多个excel表格,并压缩成zip输出

    转自:http://blog.csdn.net/qq_14861089/article/details/53169414    感谢作者分享 /** * 导出支付宝批量支付文件excel * * @p ...

  4. MyBatis Mapper Demo

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...

  5. [redis]redis实现分页的方法

    每个主题下的用户的评论组装好写入Redis中,每个主题会有一个topicId,每一条评论会和topicId关联起来,大致的数据模型如下:{ topicId: 'xxxxxxxx', comments: ...

  6. idea debug的drop frame,set watch和设置过滤条件

    idea debug中的drop frame就是回退到上一个方法调用的开始处,在IDEA里测试无法一行一行地回退或回到到上一个断点处,而是回到上一个方法. 在调用栈方法上选择要回退的方法,右键选择Dr ...

  7. 利用java执行shell脚本

    BPMN中存在由系统执行的脚本任务,shell脚本任务也是该系统任务脚本中的一种,利用的也是由java执行shell脚本. 代码中的ProcessBuilder类,为java.lang.Process ...

  8. 第一个简单APP设计图

    以下是我画出来的最简单的手机UI设计图哟,以后慢慢积累吧.... 其实使用很简单,很多控件都有,直接使用就好....还是多动手吧,相信自己之后能很好的掌握这个的使用哟!!!!!!

  9. AI测试——旅程的终点

    在2019年6月,我产生了一个想法,即人工智能探索测试AIET(Artificial intelligence exploration test),大概用了一周时间来思考怎么把人工智能应用到测试领域, ...

  10. Java 使用第三方推送 -- 极光推送

    官网链接 : https://www.jiguang.cn/ 注册完成登录后,点击创建应用 这里不细说 Java后端的整合如下: 添加maven依赖的包 <dependency> < ...