• Nginx模块之请求限制


    又学了个新模块,看起来挺重要的,配置也稍微复杂一些,赶紧来记一下

      连接频率限制-limit_conn_module

        基本语法

          1.limit_conn_zone key zone=name:size;

             要想创建连接限制必须要分配一个空间,这个空间就是第一个选项

             要声明限制的对象,比如IP $binary_remote_addr 对于Nginx的变量详解请看我的另一篇文章

             要指定分配空间的名称,为了真正实现限制时指定名称

             要指定分配空间的大小

          2.limit_conn zone number

              该语法需要结合上面,添加调用的zone的名称,限制个数

      请求频率限制-limit_req_module

          基本语法

            1.limit_req_zone key zone=name:size rate=rate

              和连接类似,需要指定空间,限制的key,空间的名称,大小

              有一个不同的是rate指定限制的单位,个数

                例如 rate=1r/s 指一秒只发送一个请求

            2.limit_req zone=name[burst=number] [nodelay]

              结合上面与连接类似

      放置区域

            1.http

            2.http,server,location

     区别:都可以实现连接限制,但表现方式不同

    HTTP请求建立在一次TCP连接基础上

    一次TCP请求至少可以产生一次HTTP请求

    测试连接限制与请求限制

      首先我们在default.conf中配置连接限制与请求限制,并将要指定的参数依次测试

         

      测试首先需要准备ab工具,对我的网站进行20次的请求,并发数为20次,我的另一篇文章有讲解

        

      在没有进行限制的情况下是没有问题的,这时我们开始对请求进行限制,每秒只允许接受一次请求

        配置完毕后不要忘记重新加载配置文件 nginx -s reload

      再次使用ab工具后会发现,出现了一个这个

        

        这说明我们的20次请求中有19次并没有通过,也就起到了请求限制的作用

      接下来我们测试连接限制

        连接限制是只允许制定个数的IP进行访问,这次我们学聪明了,由于一开始要先进行测试再打开error.log,看不到什么效果,所以要多打开一个终端进行测试

        连接限制我感觉应该不常用,而且我从虚拟机测试并没有成功,以后再搞吧

        

  • 相关阅读:
    移动端的爬坑路
    判断设备ios或android以及判断是否是微信内置浏览器
    使用vue directive 写好的滑动删除功能
    不用ajax,使用json数据渲染商品的方法
    vue中使用swiper的一些坑
    vue的自定义指令的坑
    better-score获取滑动距离的坑
    linux命令
    关于打印
    数据可视化
  • 原文地址:https://www.cnblogs.com/wangheng669/p/8194378.html
Copyright © 2020-2023  润新知