zoukankan      html  css  js  c++  java
  • 限流保护——nginx限流模块

    1.限制请求次数——limit_req_zone模块

      a.意义:limit_req_zone 表示限制单位时间内的请求数,即速率限制,采用的漏桶算法

      a.在 conf/nginx.conf 配置文件中添加

    复制代码
    http {
    
        ......
    
        #限制请求次数参数
        limit_req_zone $binary_remote_addr zone=one:10m rate=5r/m;
    
        ......
    
        server {
    
            ......
    
            location /printProducer {
    
                ......
    
                #限制请求次数
                limit_req zone=one burst=10 nodelay;
                #自定义返回码
                limit_req_status 598;
    
                ......
    
            }
    复制代码

      b.参数说明:

        $binary_remote_addr:表示通过remote_addr这个标识来限制同一客户端ip请求数

        zone=one:10m:表示生成一个大小为10M,名字为one的内存区域,用来存储访问的频次信息

        rate=5r/m:表示允许相同标识的客户端的访问频次,这里限制的是每秒1次,还可以有比如1r/s

        zone=one:表示使用哪个配置区域来做限制,与上面 limit_req_zone 里的name对应

        burst=5:表示设置一个大小为5的缓冲区当有大量请求(爆发)过来时,超过了访问频次限制的请求可以先放到这个缓冲区内

        nodelay:如果设置,超过访问频次而且缓冲区也满了的时候就会直接返回503,如果没有设置,则所有请求会等待排队

        limit_req_status 598:设置拒绝请求的返回值。值只能设置 400 到 599 之间(默认是503)

    2.限制下载速度

      a.在 conf/nginx.conf 配置文件中添加

    复制代码
    http {
    
        ......
    
        server {
    
            ......
    
            location /download{
    
                ......
    
                #不限速阈值
                limit_rate_after 10m;
                #超过阈值限制速度
                limit_rate 10k;
    
                ......
    
            }
    复制代码

      b.参数说明:

        limit_rate_after 10m:表示前 10m 大小时不限速

        limit_rate 10k:表示超过 limit_rate_after 后以 10kb/s 限速

    3.参考文章:

      https://www.cnblogs.com/biglittleant/p/8979915.html

      https://my.oschina.net/gaga/blog/495444

  • 相关阅读:
    xudyh的gcd模板
    [转]vi command summary
    Uva11538 排列组合水题
    html中的块与布局
    使用bootstrap-table插件
    2015 10月16日 工作计划与执行
    2015 10月15日 工作计划与执行
    2015 10月14日 工作计划与执行
    2015 10月13日 工作计划与执行
    2015 10月12日 工作计划与执行
  • 原文地址:https://www.cnblogs.com/ExMan/p/11795119.html
Copyright © 2011-2022 走看看