Nginx服务器防止被压力测试
最近经常用人帮忙做压力测试,用webbech或者ab等一些工具模拟并发压服务器,若服务器没有限制连接数或带宽,服务器很容易被压跨。
cat nginx.conf
…
http {
…
limit_conn_zone $binary_remote_addr zone=one:10m;
#如果在1.1.8之后版本还用语法:limit_zone name $variable size,会报警告nginx: [warn] the
“limit_zone” directive is deprecated, use the “limit_conn_zone”
directive
#这里,设置客户端的IP地址作为键。注意,这里使用的是$binary_remote_addr变量,而不是$remote_addr变
量。$remote_addr变量的长度为7字节到15字节不等,而存储状态在32位平台中占用32字节或64字节,在64位平台中占用64字节。
而$binary_remote_addr变量的长度是固定的4字节,存储状态在32位平台中占用32字节或64字节,在64位平台中占用64字节。一兆
字节的共享内存空间可以保存3.2万个32位的状态,1.6万个64位的状态。如果共享内存空间被耗尽,服务器将会对后续所有的请求返回 503
(Service Temporarily Unavailable) 错误。
server {
limit_conn one 10;
#指定一个会话最大的并发连接数(与之前的limit_conn_zone配合使用),可对单独目录做出限制,一个IP只能发起10个连接,多于10个,一律返回Services unavailable(503)状态,生产环境需考虑办公室或者局域网共享IP问题
limit_rate_after 1m;
#设置单连接限速条件(当下载文件字节数超过1MB后,limit_rate限速生效,限速100k)
limit_rate 100k;
#单连接限速
…
}
…
}
最新文章
- SQLServer中给表增加组合唯一约束
- 文本 To 音频
- 解决Tomcat catalina.out 不断成长导致档案过大的问题
- Matlab中的fread函数
- 【转】android Graphics(四):canvas变换与操作
- 初涉Node.js
- 解决Jquery和prototype的兼容问题
- qt 5 小练习 简易画板
- 项目中常用方法总结(将将DataTable数据集映射到实体对象)【转】
- UrlRouting的理解
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(十二)阶段总结
- Cornerstone 3.0.3 for mac 破解版
- Hbase Scan的方法
- Java PDF转图片
- 保存标注对象到txt 制作xml
- P1515 旅行(简单搜索)
- 解决:win10在空白处右键资源管理器重启的故障
- Codeforces round 1098
- [Android源码]Android源码之高仿飞鸽传书WIFI热点搜索与创建(一)
- struts2(三)拦截器
热门文章
- python命令行參数解析实例
- WCF 之 已知类型(KnownType)
- 聊聊高并发(二十)解析java.util.concurrent各个组件(二) 12个原子变量相关类
- Unity3D 多平台_预编译相关宏定义
- ssh 安装笔记
- PHP代码优化之细节优化(转)
- eclipse项目引用项目方法
- ERROR org.apache.zookeeper.ClientCnxn:532 - Error while calling watcher
- 连接到 Linux 服务器时首先要运行的 5 个命令
- [svc]entrypoint.sh shell脚本解析