Nginx的请求限制:

连接频率的限制:limit_conn_module

配置语法:limit_conn_zone key zone=name:size;
默认状态:-
配置方法:http

配置语法:limit_conn zone number;
默认状态:-
配置方法:http、server、location

请求频率限制:limit_req_module

配置语法:limit_req_zone key zone=name:size rate=rate;
默认状态:-
配置方法:http

配置语法:limit_req_zone=name [burst=number] [nodelay] ;
默认状态:-
配置方法:http、server、location

同一个ip,限制为每秒钟只能访问一次,
limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s
zone=req_zone:1m:定义一个空间,名字为zone,大小为1兆
remtoe_addr:客户端的ip

执行配置语法检查,并重启nginx

nginx -tc /etc/nginx/nginx.conf
nginx -s reload -c /etc/nginx/nginx.conf

这里用到ab这个工具进行并发测试

ab -n 50 -c 20 http://192.168.1.141/1.html

-n:总共发起的请求数,这里设置为50

-c:同事并发的请求,这里设置为20个

请求之前配置好的测试页面

每秒624个请求

再继续配置,遇到什么场景就对应配置就行了,这里去掉注释生效

limit_conn conn_zone 1; 限制服务端同一时刻只允许一个ip连接
limit_req zone=req_zone burst=3 nodelay; 客户端超过上面设置的速率过后,遗留3个到下一秒执行,剩下的返回503
limit_req zone=req_zone burst=3;
limit_req zone=req_zone; 开启过后同一个ip在每秒钟只能请求成功一个,剩下的可以在error.log里面看到相应的错误日志

Nginx详解八:Nginx基础篇之Nginx请求限制的配置语法与原理的更多相关文章

  1. Nginx详解二十九:基于Nginx的中间件架构设计

    基于Nginx的中间件架构 一:了解需求 1.定义Nginx在服务体系中的角色 1.静态资源服务 2.代理服务 3.动静分离 2.静态资源服务的功能设计 3.代理服务 二:设计评估 三:配置注意事项

  2. 详解递归(基础篇)———函数栈、阶乘、Fibonacci数列

    一.递归的基本概念 递归函数:在定义的时候,自己调用了自己的函数. 注意:递归函数定义的时候一定要明确结束这个函数的条件! 二.函数栈 栈:一种数据结构,它仅允许栈顶进,栈顶出,先进后出,后进先出.我 ...

  3. Web服务器之Nginx详解(理论部分)

    大纲 一.前言 二.Web服务器提供服务的方式 三.多进程.多线程.异步模式的对比 四.Web 服务请求过程 五.Linux I/O 模型 六.Linux I/O 模型具体说明 七.Linux I/O ...

  4. 【转】Web服务器之Nginx详解(理论部分)

    大纲 一.前言 二.Web服务器提供服务的方式 三.多进程.多线程.异步模式的对比 四.Web 服务请求过程 五.Linux I/O 模型 六.Linux I/O 模型具体说明 七.Linux I/O ...

  5. (转)windows 下安装配置 Nginx 详解

    windows 下安装配置 Nginx 详解 本文转自https://blog.csdn.net/kingscoming/article/details/79042874 nginx功能之一可以启动一 ...

  6. 详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud

    转载地址:https://www.jb51.net/article/109382.htm 这篇文章主要介绍了详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud,会通过 N ...

  7. 2.高并发教程-基础篇-之nginx+mysql实现负载均衡和读写分离

    技巧提示:mysql读写分离搭建好之后,配合nginx的负载均衡,可以高效的mysql的集群性能,同时免去麻烦的query分流.比如,sever1收到的请求就专门链接slave1从mysql读取数据, ...

  8. JAVASCRIPT事件详解-------原生事件基础....

    javaScirpt事件详解-原生事件基础(一)   事件 JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间,通过监听特定事件的发生,你能 ...

  9. 【three.js详解之一】入门篇

    [three.js详解之一]入门篇   开场白 webGL可以让我们在canvas上实现3D效果.而three.js是一款webGL框架,由于其易用性被广泛应用.如果你要学习webGL,抛弃那些复杂的 ...

随机推荐

  1. printf是在libc库中么?

    libc中果然有很多的函数,使用nm看了一下,里面竟然还有reboot函数,汗! 使用grep,可以看到各种 printf 也都在这里头. objdump是看函数的地址与函数名对应的,虽然也能证明pr ...

  2. 类中定义的方法,self参数

    class a(): def __init__(self): self.aa = 5 def test(): print "haha" a.test() self指的是对象本身,而 ...

  3. Path for IClasspathEntry must be absolute:

    关掉eclipse, 删除workspace工作目录下面的.metadata文件,看不到.metadata文件就 "ctril + H" 就可以看到了.然后重新打开eclipse, ...

  4. 错误整理:No plugin found for prefix 'jetty' in the current project and in the plugin groups

    在maven进行jetty的调试中出现错误: [ERROR] No plugin found for prefix 'jetty' in the current project and in the ...

  5. AutoML总结

    原文:JxKing的博客 | JxKing Blog 前言 AutoML是指尽量不通过人来设定超参数,而是使用某种学习机制,来调节这些超参数.这些学习机制包括传统的贝叶斯优化,多臂老虎机(multi- ...

  6. 原生js的开发笔记

    1.基本的dom操作 var a=document.getElementById('ma1').innerHTML;/获取html代码 alert(document.getElementById('m ...

  7. Spring Boot默认Initializer(1)——ConfigurationWarningsApplicationContextInitializer

    ConfigurationWarningsApplicationContextInitializer的作用是用来报告Spring容器的一些常见的错误配置的.这个类中定义了两个内部类: 1. 定义了一个 ...

  8. ABP 框架从源码学习——abp框架启动和结束(1)

       1.abp框架的启动是从Global.asax文件的Application_Start启动的,当然代表Global的application必须从AbpWebApplication继承: publ ...

  9. 转-OWASP CSRFGuard使用细节

    版权声明:不存在一劳永逸的技术 只存在不断学习的人.本文为博主原创文章,未经博主允许不得转载.交流联系QQ:1120121072 https://blog.csdn.net/u013474568/ar ...

  10. 部署openfaas

    首先必须部署Docker CE 17.05或者以上版本. 首先卸载旧版本, $ sudo yum remove docker \ docker-common \ docker-selinux \ do ...