Nginx v1.1.8版本之前

修改Nginx配置文件

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

新版本

但是v1.1.8版本之后再这么配置的话会报错

unknown directive “limit_zone” in /etc/nginx/nginx.conf:34

新配置文件

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

注意

# 注意,这里是对连接限速,而不是对IP限速。
# 如果一个IP允许四个并发连接,那么这个IP就是限速limit_rate×4。
# 定义一个叫“one”的记录区,总容量为 10M,以变量 $binary_remote_addr 作为会话的判断基准。(即一个地址一个会话)。
# 您可以注意到了,在这里使用的是 binary_remote_addr 而不是 remote_addr。
# remote_addr 的长度为 7 至 15 bytes,会话信息的长度为 32 或 64 bytes。而binary_remote_addr 的长度为 4 bytes,会话信息的长度为 32 bytes。
# 当区的大小为 1M 的时候,大约可以记录 32000 个会话信息(一个会话占用 32 bytes)。

本博客所有内容采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

转载文章请注明:nginx限速模块 - https://yangxx.net/?p=3768

分类: linux

young

记住该记住的,忘记该忘记的,改变能改变的,接受不能改变的!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

我不是机器人*