http{

limit_req_zone $binary_remote_addr zone=req_one:10m rate=100r/s;
server
{

listen 8080;
server_name localhost;
location /server1/ {
limit_req zone=req_one burst=10;
}

}
}

解释:

rate=100r/s  意思是每个地址每秒只能请求100次。

burst=10     表示 一共有10块令牌,并且每秒钟只新增1块令牌。

可以参考以下例子:

nginx利用limit模块设置IP并发防CC攻击
在nginx.conf 中的http字段下面加入一如下一行
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; ##平均 1r/s 每秒1个请求

再在server下配置的主机定义文档中加入如下一行(全局就加在server下面)
limit_req zone=one burst=8;队列模式
limit_req zone=one burst=8 nodelay; ###不用队列 默认的突发(burst是0)

如果只想限制php的请求,加在location下

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
limit_req zone=one burst=8 nodelay;

重加载nginx即可 nginx -s reload

参考文档1:http://www.howtoforge.com/rate-limiting-with-nginx
参考文档2:http://wiki.nginx.org/NginxHttpLimitReqModule

比如nginx.conf的http段配置如下

  1. limit_req_zone $binary_remote_addr zone=req:20m rate=100r/s;
  2. limit_req zone=req burst=150;

复制代码

“limit_req_zone $binary_remote_addr zone=req:20m rate=100r/s;”
相当于在nginx创建了一个检查站,名字叫req,凡是跟req相关的请求,并限定检查速率是100r/s。
所以当使用“limit_req zone=req
burst=150;”指定某些请求需要经过req的时候,请求的速率就被限制为100r/s。日志验证了这点。

然后就是burst=150了。这相当于在检查站req旁边放150个座位。如果某个请求当时超过速度限制被拦了,请他在空座位上坐着,等排队,如果检查站空了,就可以通过。如果连座位都坐满了,那就抱歉了,请求直接退回,客户端得到一个服务器忙的响应。所以说burst跟request_rate一点关系都没有,设成10000,就是1万个请求可以等着排队,而检查站还是1秒钟放行100个请求(龟速)。而且也不能一直排队,所以nginx还设了超时,排队超过一定时间,也是直接退回,返回服务器忙的响应。

最新文章

  1. nginx(一)
  2. hadoop安装遇到的各种异常及解决办法
  3. SQLServer(MSSQL)、MySQL、SQLite、Access相互迁移转换工具 DB2DB v1.3
  4. 小鼠迷宫问题【sdut1157】【dfs,bfs综合题目】
  5. 创建并配置Filter
  6. Microsoft Azure Powershell 获取Azure-Location
  7. 开启sa账户以及如何用JDBC进行连接
  8. C++ Prime:范围for语句
  9. angular的post提交
  10. B树的实现与源代码二(删除源代码)
  11. web项目-easyui-datagrid使用汇总
  12. Python——设计模式——单例模式
  13. Vue 组件&组件之间的通信 之 子组件向父组件传值
  14. Oracle优化器基础知识之访问数据的方法
  15. nessus无法访问https://localhost:8834/#/,解决方法。
  16. 字符串转 多行 ,判断给定一组id ,查库中不存在用
  17. spark2.3.0 配置spark sql 操作hive
  18. 二进制中1的个数(python)
  19. Spring 是如何解析泛型 - ResolvalbeType
  20. CSS 水平居中和垂直居中

热门文章

  1. 移动端 fixed 固定按钮在屏幕下方,然后按钮被键盘顶上来...顶上来了有没有~
  2. Redux入门
  3. hibernate dao 公共方法
  4. less常用方法
  5. Android Material Design之CollapsingToolbarLayout使用
  6. 以shareExtension为例学习iOS扩展开发
  7. MySQL 5.6 Reference Manual-14.6 InnoDB Table Management
  8. mac os x install redis-3.2.9
  9. Win10 UWP Tile Generator
  10. html form表单追加input元素后在提交