http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html

http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

配置方法

修改nginx的配置文件, 在http{}下增加

# 创建一个10MB大小的请求记录zone, 限制同一IP的访问每分钟60次
limit_req_zone $binary_remote_addr zone=req_perip:10m rate=60r/m;
# 创建一个10MB大小的连接数记录zone, 记录同一IP的同时连接数
limit_conn_zone $binary_remote_addr zone=con_perip:10m;

在server{} 或 location{} 下增加

# 对指定的zone, 设置突发余量限制为5, 不延迟统计
limit_req zone=req_perip burst= nodelay;
# 对指定的zone, 限制同时连接数不超过1
limit_conn conperip ;

注: 对于设定了连接数限制的, 检查 worker_processes 的值, 如果这里设置的数值还不到连接数的限制, 连接数限制永远不会被触发.

Update 2017-03-13:

在生产环境上测试的结果:
limit_req_zone的rate设置为120r/m, burst设置为60~120基本上可以满足绝大部分情况 -- 这个一定程度上取决于页面上元素的多少
limit_conn 设置为5基本上可以满足绝大部分情况

使用Nginx限制同一IP的访问频率的更多相关文章

  1. nginx 配置禁用ip地址访问

    做过面向公网WEB运维的苦逼们肯定见识过各种恶意扫描.拉取.注入等图谋不轨行为吧?对于直接对外的WEB服务器,我们可以直接通过 iptables . Nginx 的deny指令或者是程序来ban掉这些 ...

  2. nginx配置限制同一个ip的访问频率

    1.在nginx.conf里的http{}里加上如下代码: limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $s ...

  3. nginx配置限制同一个ip的访问频率方法

    1.在nginx.conf里的http{}里加上如下代码: limit_conn_zone $binary_remote_addr zone=perip:10m;   limit_conn_zone ...

  4. 在nginx中配置ip直接访问的默认站点

    一台机子部署多个网站,我们直接访问ip (外网内网都一样)提示无法访问或404. 因为有多个网站,我们想指定某个网站为IP访问默认的网站,如何操作呢? 解:在Listen ip:port; 这个指令行 ...

  5. nginx + lua 限制ip地址访问

    实验环境:docker + openresty 我限制的5秒钟内允许访问两次效果图: default.conf  代码如下: lua_shared_dict my_limit_count_store ...

  6. nginx单个ip访问频率限制

    一.限制所有单个ip的访问频率 1.http中的配置 http { #$limit_conn_zone:限制并发连接数 limit_conn_zone $binary_remote_addr zone ...

  7. nginx屏蔽某一ip的访问

    假设我们想禁止访问nginx次数最多的ip访问我们的网站 我们可以先查出那个ip访问次数最多 awk '{print $1}' nginx.access.log |sort |uniq -c|sort ...

  8. RestFramework自定制之认证和权限、限制访问频率

    认证和权限 所谓认证就是检测用户登陆与否,通常与权限对应使用.网站中都是通过用户登录后由该用户相应的角色认证以给予对应的权限. 权限是对用户对网站进行操作的限制,只有在拥有相应权限时才可对网站中某个功 ...

  9. nginx lua redis 访问频率限制(转)

    1. 需求分析 Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等. 用Nginx+Lua+Redis来做访问限制主要是考虑到高并发环境下快速访问控制的 ...

随机推荐

  1. mybatis配置文件,注意标签配置顺序。否则报错The content of element type "configuration" must match "(properties?,settings?,...怎么解决

    感谢原作者http://www.cnblogs.com/zhoumingming/p/5417014.html 注意每个标签必须按照顺序写,不然就会提示错误 顺序是 <?xml version= ...

  2. .NET:如何实现 “热插拔”?

    背景 如果某个“功能”需要动态更新?这种动态更新,可能是需求驱动的,也可能是为了修改 BUG,面对这种场景,如何实现“热插拔”呢?先解释一下“热插拔”:在系统运行过程动态替换某些功能,不用重启系统进程 ...

  3. 触发器系列(2) DataTrigger

    触发条件: DataTrigger是以控件DataContext的属性作为触发条件 本例效果说明: <!--当值为1时将外边框的背景色改为黑色--> <!--当值为2时 改变透明度达 ...

  4. 【BZOJ】【3489】A simple rmq problem

    KD-Tree(乱搞) Orz zyf教给蒟蒻做法 蒟蒻并不会这题正解……(可持久化树套树?...Orz 对于每个点,我们可以求出pre[i],nex[i],那么询问的答案就是:求max (a[i]) ...

  5. go语言之进阶篇指针类型和普通类型的方法集

    方法集 类型的方法集是指可以被该类型的值调用的所有方法的集合. 用实例实例 value 和 pointer 调用方法(含匿名字段)不受方法集约束,编译器编总是查找全部方法,并自动转换 receiver ...

  6. RequireJS 参考文章

    入门: http://www.cnblogs.com/snandy/archive/2012/05/22/2513652.html http://www.cnblogs.com/snandy/arch ...

  7. Web页面切图和CSS注意事项

    一.Asp.net中的线程池设置 在Asp.net的服务处理中,每当服务器收到一个请求,HttpRuntime将从HttpApplication池中获取一个HttpApplication对象处理此请求 ...

  8. 如何实现JS函数的重载

    javascript不能支持函数的重载,如下: function f(length) { alert("高为:"+length); } function f(length,widt ...

  9. tcp协议的端口状态

    Listening Syn_sent syn_rcvd established close_wait time_wait --------- 对方主动关闭(对方调用close()), 我方的状态变为 ...

  10. spring boot测试工具(自带)

    启动spring boot 项目(一般是openapi) http://localhost:8888/swagger-ui.html 端口号可以自己配