zoukankan      html  css  js  c++  java
  • 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,看不到什么效果,所以要多打开一个终端进行测试

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

        

  • 相关阅读:
    CSS 中 nth-child 和 nth-of-type 的区别
    Git HTTPS 方式自动保存用户名密码
    nginx 配置代理某个路径
    VS Code 常用插件列表
    安装node-sass的正确姿势【转】
    MongoDB 3.4.2 配置 CentOS 6.5 远程连接
    CentOS 6.5 升级 PHP 到5.6
    常用正则表达式整理[JavaScript]
    nginx提示413 Request Entity Too Large解决方法
    Linux远程执行Shell命令或脚本
  • 原文地址:https://www.cnblogs.com/wangheng669/p/8194378.html
Copyright © 2011-2022 走看看