参数说明
$binary_remote_addr是同一客户端IP IP地址用二进制来储存客户端的地址,1m 可以储存 32000 个并发会话;
$server_name是同一server最大并发数;(虚拟主机如:www.aaa.com就是一个虚拟主机)
limit_conn_zone 用来限制同一时间连接数,即并发限制,限制并发连接数;
limit_req_zone 用来限制单位时间内的请求数,即速率限制,采用的漏桶算法 “leaky bucket” ,限制下载速率;
limit_rate 用来限制下载速度

控制nginx并发连接数
定义内存区
limit_conn_zone key zone=name:size;
上下文http内
设置共享内存区域key可以是字符串,nginx自有变量或前两个组合,如$binary_remote_addr,$server name name为内存区域的名称,size为内存区城的大小。

在server标签的location内做限制
limit_conn zone number;
zonename是定义的内存区域名称 number是指最大连接数,当超过最大连接数,服务器返回503错误

例:
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
}
location / {
limit_conn addr 10; #限制单ip的最大并发连接数为10
}

以下功能可以用于服务器下载(限制BT下载)
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
}
location /download/ {
limit_conn addr 1;
}

限制虚拟主机总连接数
limit_conn_zone $server_name zone=perserver:10m; #http标签中
limit_conn perserver 100; #location标签中
例:
http {
limit_conn_zone $server_name zone=perserver:10m;
}
location / {
limit_conn perserver 100; #限制同一server(虚拟主机)最大并发数
}

控制nginx用户请求速率
上下文http内
limit_req_zone $binary_remote_addr zone=reqlist:10m rate=1r/s;
以请求的客户端ip作为key值,内存区域命名为reqlist,分配10m内存空间,访问速率限制每秒1次请求request

在server标签的location内做限制
limit_req zone=reqlist burst=5 nodelay;
使用前面定义的名为reqlist的内存空间,队列值为5,即可以有5个请求排队等待。nodelay字面的意思是不延迟,具体说是对用户发起的请求不做延迟处理,而是立即处理. 真正对限流起作用的配置就是rate=1r/s和burst=5这两个配置
例:限制远端同一个IP地址每秒访问次数
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=30r/s;
}
location / {
limit_req zone=one burst=5 nodelay;
}

例2 限制一个虚拟主机(如www.aaa.com)每秒允许被访问的速率
http {
limit_req_zone $server_name zone=one:10m rate=30r/s;
}
location / {
limit_req zone=one burst=5 nodelay;
}

控制nginx用户下载速度
location ^~ /videos/ {

limit_rate_after 10m;
limit_rate 150k;

}

第一个指令limit_rate_after,从下载到你指定的文件大小之后开始限速,然后第二个指令limit_rate,设置最高下载速度。
要注意的是上面的设置是限制的是每一个连接的下载速度,所以如果一个用户打开了多个连接下载,那么它的下载速度就能达到单个连接的限速乘以连接数。不过我们可以使用limit_conn_zone和limit_conn这两个指令限制其连接数。

限制同一个ip的连接数和下载速度 用于服务器下载(限制BT下载)
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
}
location /download/ {
limit_conn addr 1;
limit_rate_after 10m;
limit_rate 150k;
}

Nginx限制最大连接数、请求速率、下载速度相关推荐

  1. 查看nginx的最大连接数及当前最大连接数

    查看nginx的最大连接数 (1) 控制 Nginx 单个进程允许的最大连接数的参数为 worker_connections ,这个参数要根据服务器性能和内存使用量来调整 (2) 进程的最大连接数受 ...

  2. Nginx配置跨域请求 Access-Control-Allow-Origin *

    Nginx配置跨域请求 Access-Control-Allow-Origin * 当出现403跨域错误的时候 No 'Access-Control-Allow-Origin' header is p ...

  3. 摘要: Nginx 网络多并发请求的TCP网络参数做简单说明。

    摘要: Nginx 网络多并发请求的TCP网络参数做简单说明. 需要修改/etc/sysctl.conf来更改内核参数 #原有字段 net.ipv4.tcp_syncookies = 1 #新增字段 ...

  4. 解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题

    解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题 参考文章: (1)解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题 (2)ht ...

  5. nginx 和php连接数,nginx限制ip连接数和带宽

    搜索热词 今天有个人问我,Nginx怎么限制ip连接数,突然想不起来了,年龄大了,脑子不怎么好使了.还要看一下配置才想起了.那个人又问我,你测试过的吗?一下子把我问蒙了,我真没测试过了,也不知道启作用 ...

  6. nginx工作进程处理请求的系统调用

    1.找到nginx的工作进程 ps aux |grep nginx 2.使用 strace 监控该进程[系统调用] strace -p 5439 3.对nginx发起简单get请求 wget loca ...

  7. Nginx+Lua+Redis 对请求进行限制

    Nginx+Lua+Redis 对请求进行限制 一.概述 需求:所有访问/myapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器 ...

  8. nginx 如何将 https 请求转发到 http

    nginx 如何将 https 请求转发到 http 网站之前是 https 的,通过 nginx 设置好了,现在不想用 https 了,但发散到外界的一些网址还是 https 的,此时只能通过 ng ...

  9. NGINX中的的请求头x_real_ip和x_forwarded_for

    以下是转载内容: 内容来源:https://www.cnblogs.com/diaosir/p/6890825.html https://blog.csdn.net/feifeixiang2835/a ...

最新文章

  1. 商汤提基于贪心超网络的One-Shot NAS,达到最新SOTA | CVPR 2020
  2. C风格字符串和C++ string 对象赋值操作的性能比较
  3. 常见的html行级元素及语义,HTML入门之——结构,常用标签及其属性,再加上语义化...
  4. WinSock I/O 模型 -- WSAAsyncSelect 模型
  5. 为什么使用NativeJdbcExtractor
  6. 基础编程题之查找组成一个偶数最接近的两个素数
  7. Ubuntu 16.04 火狐添加java插件、解决Firefox强制低版本java插件运行以及安全设置限制自签名应用程序运行
  8. BlockingQueue - LinkedBlockingQueue常用API
  9. PostgresSQL支持geometry类型
  10. 诺宝机器人编程入门教程_(完整)VEX 机器人软件编程教程
  11. MQ详解及四大MQ比较
  12. dts双轨制会员积分系统
  13. nginx集群配置流程
  14. MEGARAC(宝德)服务器BMC登录失败解决办法
  15. 数据挖掘——关联分析Apriori算法
  16. 二氧化硅微球包埋羧甲基壳聚糖稀土镧离子/二氧化钛和十六烷基胺/草莓形PVAc/SiO2纳米复合微球性能
  17. Python 基于 uiautomator2 实现《全民开喵铺》自动收币,自动签到,自动浏览得喵币
  18. 《Chrysanthemums Terrace》《菊花台》
  19. 深入理解Android相机体系结构之二
  20. C语言进阶——函数指针

热门文章

  1. 经典游戏中的游戏编程
  2. Linux 与硬体的搭配
  3. [附源码]Python计算机毕业设计办公用品管理系统
  4. linux服务器查杀,Linux服务器PHP后门查杀
  5. WZOI-293表演
  6. IDC:2015年中国医疗服务和健康管理行业IT市场10大预测
  7. Python批量下载Bilibili(B站)1080P60fps视频-pip打包安装
  8. 游戏建模有哪些基础知识?
  9. 无刷直流电机介绍及单片机控制实例
  10. 常见操作系统命令注入思路