nginx限速
nginx 要实现限速,完整的实现是要限制客户端请求频率,并发连接和传输速度
1.请求限制
Nginx 请求限制的功能来自于 ngx_http_limit_req_module 模块。使用它需要首先在 http 配置段中定义限制的参照标准和状态缓存区大小。比如下面的配置就是定义了使用客户端的 IP 作为参照依据,并使用一个 10M 大小的状态缓存区。结尾的 rate=1r/s 表示针对每个 IP 的请求每秒只接受一次。
limit_req_zone $binary_remote_addr zone=NAME:10m rate=1r/s;
NAME 是自定义的缓存区名称,可以随意命名,比如 per_ip 或 one 等。在 server 配置段中会用到。10M 的状态缓存空间够不够用呢?官方给出的答案是 1M 的缓存空间可以在 32 位的系统中服务 3.2 万 IP 地址,在 64 位的系统中可以服务 1.6 万 IP 地址,所以需要自己看情况调整。如果状态缓存耗光,后面所有的请求都会收到 503(Service Temporarily Unavailable) 错误。
然后就可以在 server 段中配置具体的连接限制了。比如下面的配置:
server {
location / {
limit_req zone=NAME burst=;
}
}
后面的 burst=5 是一个宽容度配置。表示如果单个 IP 有每秒有超过 1 个请求限制的时候,最多接受多少个超出的配额。超出的请求会被加入到队列延迟处理。如果不想延迟,可以使用 nodelay 参数。示例如下:
server {
location / {
limit_req zone=NAME burst= nodelay;
}
}
2.并发限制
Nginx 并发限制的功能来自于 ngx_http_limit_conn_module 模块。跟请求配置一样,使用它之前,需要先定义参照标准和状态缓存区。
limit_conn_zone $binary_remote_addr zone=NAME:10m;
然后同样在 server 段中配置具体的限速数据。比如针对下载目录,每个 IP 只允许一个连接:
server {
location /download/ {
limit_conn NAME ;
}
}
速度限制:
Nginx 除了限制请求和并发外,还可以使用 limit_rate 来限制传输速度。例如:
server {
location / {
limit_rate 100k;
}
}
上面的配置意思表示每个连接的传输速度不能超过 100k。
参考文档:
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate
nginx限速的更多相关文章
- Nginx限速模块初探
Nginx限速模块分为哪几种?按请求速率限速的burst和nodelay参数是什么意思?漏桶算法和令牌桶算法究竟有什么不同?本文将带你一探究竟.我们会通过一些简单的示例展示Nginx限速模块是如何工作 ...
- nginx 限速最容易理解的说明
nginx 限速研究汇报 写在前面 这两天服务器带宽爆了,情况如下图: 出于降低带宽峰值的原因,我开始各种疯狂的研究nginx限速.下面是我研究过程中的心得!(花了好几个小时的时间写的人生第一篇技术类 ...
- Nginx (限速)限制并发、限制访问速率、限制流量
Nginx 限制并发访问速率流量,配置还是简单的,看下Nginx文档根据文中这三个模块对照看一下就可以,Nginx限速使用的是漏桶算法(感兴趣可以看下文末的参考资料),需要注意的是:当需要进行限速操作 ...
- Nginx 限速模块一览
为了保护服务器不被刷流量,或者业务方面的一些限制,需要做一些限速措施. 一.http 请求并发连接数模块:ngx_http_limit_conn_module 这个模块可以设置每个定义的变量(比如客户 ...
- Nginx限速遇到的问题
公司使用的是Nginx做文件服务器,最近服务器流量增大,老板提出要给每个客户端进行限速. 在Nginx中进行限速配置: http { limit_zone one $binary_remote_add ...
- 关于nginx限速的配置
limit_req zone=req_one burst=; zone定义了一个req_one的name,burst表示允许超过限制的请求数不多于20个,后面可加参数(nodelay):超过的请求不会 ...
- nginx限速白名单配置
在<nginx限制连接数ngx_http_limit_conn_module模块>和<nginx限制请求数ngx_http_limit_req_module模块>中会对所有的I ...
- 02 - nginx - 反向代理、限速
一.Nginx反向代理 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器. 代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中, ...
- [ nginx ] 带宽下载限速
nginx上了一个APP提供给用户下载,考虑到带宽占用的问题,决定在nginx上做下载限速处理. 操作系统:Centos6.7 X64 nginx版本:nginx/1.11.3 根据官方文档: 对ng ...
随机推荐
- springBoot springCloud
微服务功能的主要体现: 1)服务的注册与发现 Eureka ,Consul ,Zookeeper 2)服务的负载均衡 Ribbon 3)服务的容错 Hystrix 4)服务的网关 微服务中常用的网关组 ...
- DB2—alter追加/删除/重置column操作
DB2—alter追加/删除/重置column操作 1.添加字段 alter table 表名称 add 字段名称 类型 Demo: 1 alter table table_name a ...
- Fiddler在fiddler option设置还是抓不了HTTPS包解决办法
1:请在“运行”,即下面这个地方输入certmgr.msc并回车,打开证书管理. 打开后,请点击操作--查找证书,如下所示: 然后输入“fiddler”查找所有相关证书,如下所示: 可以看到,我们找到 ...
- 手机APP测试技术-整体测试流程框架
一 手机APP测试基本思路: 测试计划--测试方案--测试用例--执行: 很多小公司都没有具体的需求,项目时间也比较紧,而且流程也不是很严谨,在这样的情况之下,作为测试的我们,该怎样去对项目进行用例 ...
- 理解竞争条件( Race condition)漏洞
这几天一个叫做"Dirty COW"的linux内核竞争条件漏洞蛮火的,相关公司不但给这个漏洞起了个洋气的名字,还给它设计了logo(见下图),首页,Twitter账号以及网店.恰 ...
- 洛谷 P2183 [国家集训队]礼物
题目描述 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物 ...
- [POI2014]Solar Panels
题目大意: $T(T\le1000)$组询问,每次给出$A,B,C,D(A,B,C,D\le10^9)$,求满足$A\le x\le B,C\le y\le D$的最大的$\gcd(x,y)$. 思路 ...
- Android UI 常用图标尺寸规范
1. 程序启动图标: LDPI (Low Density Screen,120 DPI),其图标大小为 36 x 36 px. MDPI (Medium Density Screen, 160 DPI ...
- Flex 布局学习笔记
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- android 代码覆盖率
背景 项目使用的是small插件.一个app分为main和多个插件,为了统计插件的代码覆盖率. 1 修改插件 修改插件build.gradle buildTypes { release { ... } ...