$ 区域=一:100m 速率=10r/m;
{
……………………。
……………………。
区域=一次突发=1;
………………。
Rate=10r/m表示每秒不允许超过1个请求,最大延迟请求数不超过5个。
如果请求不需要延迟,添加参数,服务器会立即返回503状态码。 如果没有这个字段,将会有大量的TCP连接请求等待。
http{ 1000 万美元; { ......一个1; ...... } }
这里one是声明的名字,$是替换$的变量,10m是会话状态存储空间一1,限制并发客户端连接数为1,每个IP一次(每次)只允许一个。
d) 根据字面理解,功能是通过漏桶原理来限制用户的连接频率(该模块允许你限制单个地址指定的请求数量或者特殊需求),功能是限制数量客户端的并发连接数。 (该模块可以限制单个地址的指定会话数或者特殊情况下的并发连接数)一是限制并发连接数,二是限制连接频率。 表面上看好像没有什么区别,我们来看看实际效果吧~~~将这两个参数添加到我的测试机上。 以下是我的配置文件的一部分。
e)http{ 1 1000 万美元; # $ 区域=:10m 速率=1r/s; { ...... 一 1; # 区域=突发=120; ...... } }
f) 解释一 1000 万美元; 其中one为声明one的名称,$为替换$的变量,10m为会话状态存储one 1的空间,并发客户端连接数限制为1
2、两种工作条件
a)=一次突发=10;
我。 默认是这样配置的,这样每个请求都会有一个延迟时间,
$ 区域=一:100m 速率=10r/m;
即每分钟有10个代币可供用户使用。 根据a的配置,会有延迟。 每次请求时间为60/10,所以每次请求时间为6s。
b)=一次爆发=;
我。 添加配置,以便根据您的网络条件进行访问。 每分钟访问10次后,服务器会直接返回503。
ii.例如:$zone=one:100m 速率=10r/m;
即每分钟有10个代币可供用户使用。 根据b的配置,会根据网络情况来访问该URL。 如果一分钟内有超过10个令牌,服务器将返回503并等待下一分钟接收访问令牌。
rate=10r/m 表示每个地址每分钟只能请求10次。 也就是说,根据漏桶原理,burst=1总共有1个token,每分钟只添加10个新token。 1 个令牌 发牌后任何额外请求都将返回 503
另外,超过突发大小的请求将直接返回503。如果没有该字段,将会有大量的TCP连接请求等待。
http{
...
#定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,
#以$binary_remote_addr 为key,限制平均每秒的请求为20个,
#1M能存储16000个状态,rete的值必须为整数,
#如果限制两秒钟一个请求,可以设置成30r/m
limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
...
server{
...
location {
...
#限制每ip每秒不超过20个请求,漏桶数burst为5
#brust的意思就是,如果第1秒、2,3,4秒请求为19个,
#第5秒的请求为25个是被允许的。
#但是如果你第1秒就25个请求,第2秒超过20的请求返回503错误。
#nodelay,如果不设置该选项,严格使用平均速率限制请求数,
#第1秒25个请求时,5个请求放到第2秒执行,
#设置nodelay,25个请求将在第1秒执行。
limit_req zone=allips burst=5 nodelay;
...
}
...
}
...
}
复制
参考链接:
-------------------------------------------------- ------------------
限制下载速度:
location /download {
limit_rate 128k;
}
#如果想设置用户下载文件的前10m大小时不限速,大于10m后再以128kb/s限速可以增加以下配内容,修改nginx.conf文件
location /download {
limit_rate_after 10m;
limit_rate 128k;
}
复制
类别:Nginx