zoukankan      html  css  js  c++  java
  • Nginx限流

    Nginx提供了两种限流手段:一是控制速率,二是控制并发连接数。

    1.控制速率

    使用limit_req_zone来限制单位时间内的请求数,即速率限制,示例配置如下:

    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=2r/s;
    server { 
        location / { 
            limit_req zone=mylimit;
        }
    }

    以上配置表示,限制每个IP访问的速度为2r/s,因为Nginx的限流统计是基于毫秒的,我们设置的速度是2r/s,转换一下就是500ms内单个IP只允许通过1个请求,从501ms开始才允许通过第2个请求。

    速率限制允许突发burst:

    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=2r/s;
    server { 
        location / { 
            limit_req zone=mylimit burst=4;
        }
    }

    burst=4表示每个IP最多允许4个突发请求。

    2.控制并发连接数

    利用limit_conn_zone和limit_conn两个指令即可控制并发数,示例配置如下:

    limit_conn_zone $binary_remote_addr zone=perip:10m;
    limit_conn_zone $server_name zone=perserver:10m;
    server {
        ...
        limit_conn perip 10;
        limit_conn perserver 100;
    }

    其中limit_conn perip 10表示限制单个IP同时最多能持有10个连接;limit_conn perserver 100表示server同时能处理并发连接的总数为100个。

    PS:只有当request header被后端处理后,这个连接才进行计数。

  • 相关阅读:
    适配问题
    屏幕适配
    软键盘适配
    即时通讯
    缩减APK包大小
    基于RulesEngine的业务规则实现
    基于NXBRE规则引擎实现的柔性折扣策略
    SQL Server代码如何快速格式化
    SQL Server 跨库同步数据
    HTML+AngularJS+Groovy如何实现登录功能
  • 原文地址:https://www.cnblogs.com/winnerREN/p/13860357.html
Copyright © 2011-2022 走看看