zoukankan      html  css  js  c++  java
  • Nginx详解八:Nginx基础篇之Nginx请求限制的配置语法与原理

    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里面看到相应的错误日志

  • 相关阅读:
    C++类中使用new及delete小例子(续)
    C++类中使用new及delete小例子
    C++类中static修饰的函数的使用
    C++类使用static小例子(新手学习C++)
    C++结构体中使用函数与类中使用函数小结
    记一次简单的性能优化
    [转载]Java的内存回收机制
    写给自己的项目总结
    [转载]正则表达式30分钟入门教程
    使用JRockit进行性能优化一:环境搭建
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/10486937.html
Copyright © 2011-2022 走看看