zoukankan      html  css  js  c++  java
  • nginx的请求限制

    一、http协议的连接与请求

    总结:

    HTTP请求是建立在一次TCP连接的基础之上。

    一次TCP请求至少产生一次HTTP请求。

    二、连接限制

    limit_conn_module

     配置语法:

    Syntax:    limit_conn_zone key zone=name:size;
    Default:    —
    Context:    http
    
    
    Syntax:    limit_conn zone number;
    Default:    —
    Context:    http, server, location

     示例:

     

    limit_conn conn_zone 1 :同一时刻只允许一个ip的请求过来。

    三、请求频率限制

    limit_req_module

    Syntax:    limit_req_zone key zone=name:size rate=rate [sync];
    Default:    —
    Context:    http
    
    
    yntax:    limit_req zone=name [burst=number] [nodelay | delay=number];
    Default:    —
    Context:    http, server, location

    示例:

    说明:

    $binary_remote_addr客户端地址,不用$remote_addr,是因为 $binary_remote_addr更省空间。

    zone=req_zone : 分配的存储空间名称

    reate=1r/s:对于同一个IP地址过来的所有的请求,限制为每秒只能发起1个请求。 

     配置limit_req_zone

    用ab压力测试工具进行测试

    //总共请求30次,并发为20
    ab -n 30 -c 20 http://192.168.0.133/index.html

     测试结果:

    查看error.log,发现日志中有和多请求限制的错误。

    第二种参数配置:

    burst=3 表示客户的请求在超过指定的速率(本次配置为1r/s)后,遗留的3个请求释放到下一秒执行,会保证有3个请求在下一秒执行,起到一个访问限速的作用,即延迟响应。

    nodelay 表示除了这3个请求外,其它的请求直接返回。

     

    本文为袋鼠学习中的总结,如有转载请注明出处:https://www.cnblogs.com/chrdai/protected/p/11331504.html

  • 相关阅读:
    Luogu P1396 营救
    Luogu P1339 热浪Heat Wave
    哈夫曼树学习笔记
    题解 CF1372C
    题解 CF 1372 B
    题解 CF 1372A
    题解 UVA1193 Radar Installation
    题解 洛谷 P2287 [USACO07NOV]Sunscreen G
    洛谷 P1080 国王游戏 题解
    牛客练习赛 66C公因子 题解
  • 原文地址:https://www.cnblogs.com/chrdai/p/11331504.html
Copyright © 2011-2022 走看看