开发者社区> 问答> 正文

我想限制Nginx服务器访问速度

做实验的时候访问速度太快,现在要限制Nginx服务器访问速度来模拟正常的访问和特殊情况下
求解怎么去做限制

展开
收起
我的中国 2016-02-01 17:10:26 2550 0
1 条回答
写回答
取消 提交回答
  • R&S网络资深工程师 ,阿里云论坛官方版主,阿里云云计算ACP,春考教学网站长,IT技术晋级之路专辑作者

    打开"nginx根目录/conf/nginx.conf"配置文件修改如下:

    http{

    ……

    limit_zone one $binary_remote_addr 10m;

    ……

    server {

    location / { 
    
      …… 
    
     limit_conn one 2; 
    
      limit_rate 40k; 
    
    } 
    

    }

    }
    以上配置解释:limit_zone针对每个IP定义一个存储session状态的容器。这个示例中定义了一个名叫one的10m大小的容器,这个名字会在后面的limit_conn中使用。limit_conn指定每个访客只能建立两条链接,limit_rate限制每条链接的速度不超过40K。所以,以上配置限制用户访问此站点总速度上限为80K。
    属性说明limit_zone
    语法:
    复制代码 代码如下:
    limit_zone zone_name $variable memory_max_size
    作用域:http
    limit_conn
    语法:
    复制代码 代码如下:
    limit_conn zone_name 允许每个客户端建立的链接数
    作用域:http, server, location
    limit_rate
    语法:
    复制代码 代码如下:
    limit_rate 每个链接的最大速率
    作用域:http, server, location
    案例案例1:下载资源放在http://domain/download/路径下,针对每个访客下载限速为100K,且只能同时链接1个下载链接。

    http{

    server {

    location /download/ { 
    
      …… 
    
      limit_conn one 1; 
    
      limit_rate 100k; 
    
    } 
    

    }

    }
    案例2:每个访客访问站点的速度最大不超过100K,且可建立5条链接。

    http{

    server {

     location /download/ { 
    
       …… 
    
       limit_conn one 5; 
    
       limit_rate 20k; 
    
     } 
    

    }

    }
    由于linit_rate是对每个链接限速,以上例子有5条链接,保证总速度不超过100K则每条链接不超过20K

    2019-07-17 18:27:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《Nginx 代理系统常用手册》 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载