nginx限制访问速度
2024-10-19 03:23:59
转自:http://siwei.me/blog/posts/nginx-ip
参考:http://tengine.taobao.org/document_cn/http_limit_req_cn.html
HttpLimitReqModul 限制某一段时间内同一ip访问数实例
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;
...
}
...
}
...
}
(测试不通过) HttpLimitZoneModule 限制并发连接数实例 limit_zone只能定义在http作用域,limit_conn可以定义在http server location作用域
http{
...
#定义一个名为one的limit_zone,大小10M内存来存储session,
#以$binary_remote_addr 为key
#nginx 1.18以后用limit_conn_zone替换了limit_conn
#且只能放在http作用域
limit_conn_zone one $binary_remote_addr 10m;
...
server{
...
location {
...
limit_conn one 20; #连接数限制
#带宽限制,对单个连接限数,如果一个ip两个连接,就是500x2k
limit_rate 500k;
...
}
...
}
...
}
每个IP 允许最多10个连接, 每个连接1MB
Inside your server block configuration:
limit_rate 128K; limit_zone one $binary_remote_addr 10m;
Inside your location block configuration:
limit_conn one 10;
In this example, it would allow 10 connections per IP with 1 Mbit each.
如果仅仅是 限制某个req的速度:
limit_rate 50k;
最新文章
- [NOIP2011] 选择客栈
- Web 前端开发学习之路(入门篇)
- java高新技术-反射
- 适配iPhone6和iPhone6 Plus
- WPF标注装饰器
- YTU 3008: 链串的基本运算
- SVN-钩子祥解
- Redis系统管理相关指令简介
- iOS 简单理解类的本质
- Linux的五个查找命令 [转]
- 面试 12:玩转 Java 快速排序
- Django restful 规范
- java ee Concurrency 并发编程
- ComponetOne 2014 v3版本正式发布
- dev-server.js浅析
- 背水一战 Windows 10 (40) - 控件(导航类): AppBar, CommandBar
- lua 注释
- EL中拼接字符串的方法
- Angular CLI 安装和使用以及安装失败的解决方法
- bzoj2957楼房重建
热门文章
- iOS单例的作用和使用
- Java中UIManager的几种外观的详细讲解
- Hadoop.2.x_集群初建
- [转载]触发ASSERT(afxCurrentResourceHandle != NULL)错误的原因
- HDU1063 大数 java
- 关于ueditor1_4_3 上传出现无法加载配置的问题
- 导出excel时,以form方式提交json数据
- decode 函数将字符串从某种编码转为 unicode 字符
- window dos命名
- Python字符串,元组、列表、字典