公司使用的是Nginx做文件服务器,最近服务器流量增大,老板提出要给每个客户端进行限速。

在Nginx中进行限速配置:

http { 
  limit_zone   one  $binary_remote_addr  10m;  
  server { 
    location /download/ { 
      limit_conn   one  1; 
      limit_rate 300k; 
    } 
  } 
} 

 

结果提示错误:nginx: [emerg] unknown directive "limit_zone" in xxxx

查过资料之后才知道,原来Nginx从v1.1.8版本之后就用limit_conn_zone替换掉了limit_zone,具体见:nginx v1.1.8新语法 limit_conn_zone 替换和 limit_conn 用法

当我修改之后,就可以启动了

http { 
  limit_conn_zone $binary_remote_addr zone=one:10m; #容器共使用10M的内存来对于IP传输开销
  server { 
    location /download/ { 
      limit_conn   one  1;  #限制每个IP只能发起一个并发连接
      limit_rate 300k;   #对每个连接限速300k。
    } 
  } 
} 


#注意,这里是对连接限速,而不是对IP限速。
#如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate×2。

 

相关文章:

  • 2022-01-09
  • 2021-08-26
  • 2022-12-23
  • 2022-12-23
  • 2021-11-11
  • 2021-06-18
  • 2021-06-01
猜你喜欢
  • 2021-04-29
  • 2021-10-18
  • 2022-12-23
  • 2022-12-23
  • 2021-09-26
  • 2021-04-27
  • 2021-11-12
相关资源
相似解决方案