在WEB开发中经常会遇到接口被刷的情况,如CC攻击,通过有限的ip对服务器发来大量请求,使服务器资源耗尽。使用nginx的ngx_http_limit_req_module 模块和ngx_http_limit_conn_module模块可以对统一ip的请求和连接数进行限制。
1,ngx_http_limit_req_module模块,用来限制连单位时间内连接数的模块,是对一段时间内的连接数限制。设置一块共享内存限制域用来保存键值的状态参数
语法:
limit_req_zone $variable zone=name:size rate=rate; 其中$variable是键,zone是区域名,limit_req会使用,size是内存大小,rate是连接数限制每秒/每分。
limit_req zone=name [burst=number] [nodelay];设置对应的共享内存限制域和允许被处理的最大请求数阈值。 默认超过请求频率的请求会被延时处理,当超过阀值默认返回503。burst表示前一秒如未达到上线,其余量可以顺延给下一秒。nodelay表示不延时处理
limit_req_status code 设置拒绝请求的响应状态码,默认不设置为503
举例:
limit_req_zone $binary_remote_addr zone=addr_gift:10m rate=30r/s;
limit_req zone=addr_gift nodelay;
limit_req_status 403;
统一IP平均处理的请求频率不能超过每秒30次,且不延时执行,超过上限的返回 403。
2,ngx_http_limit_conn_module模块,用来限制单个ip的并发连接数,是对同一时刻的连接数限制。
语法:
limit_conn_zone $variable zone=name:size;$variable定义键,zone=name定义区域名称,size定义各个键共享内存空间大小。
limit_conn zone_name number,指定每个给定键值的最大同时连接数,当超过这个数字时默认被返回503。
limit_conn_status code; 。指定当超过限制时,返回的状态码。默认是503。
举例:
limit_conn_zone $binary_remote_addr zone=addr_conn:10m;
limit_conn addr_conn 50;
limit_conn_status 403;
统一IP并发连接数50,超过限制返回403
相关推荐
通过查看Nginx的并发连接,我们可以更清除的知道网站的负载...下面这篇文章主要给大家介绍了关于nginx限速之连接数限制技巧的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
主要介绍了Nginx服务器限制访问速度的配置方法,尤其是当服务器中存在ftp下载等服务时尤为有用,需要的朋友可以参考下
有个老项目,通过 Squid 提供文件下载功能,利用 delay_parameters 实现带宽控制,问题是我玩不转 Squid,于是盘算着是不是能在 Nginx 里找到类似的功能。 好消息是 Nginx 提供了 limit_rate 和limit_rate_after,...
docker下制作nginx镜像,限流限速配置,ssl认证镜像
限速 黑白名单 跨域处理 负载均衡 htts配置 nginx高可用 nginx动态添加模块 平滑升级 常见问题 手动日志分隔 自动日志分隔 pid问题 附录 附录1-目录结构 附录2-location规则 附录3-跨域处理 附录4-...
主要介绍了Nginx服务器对数据传输速度限制的基本配置方法讲解,包括第三方开发的限速模块Nginx-limit-traffic-rate-module的使用介绍,需要的朋友可以参考下
一般对外暴露的系统,在促销或者黑客攻击时会涌来大量的请求,为了保护系统不被瞬间到来的高并发流量给打垮, 就需要限...接下来通过本文给大家分享使用nginx实现分布式限流的方法,感兴趣的朋友跟随脚本之家小编一起学习吧
教程名称:誉天邹老师运维系列教程之二-Nginx网站架构实战视频课程目录:【】01-Nginx架构及安装【】02-Nginx虚拟主机及相关配置【】03-Nginx地址重写【】04-Nginx日志管理和限速【】05-Nginx反向代理和负载均衡 ...
今天小编就为大家分享一篇nginx黑名单和django限速,最简单的防恶意请求方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
新版可运营级网盘系统网站源码,支持转存和限速下载。一款安全可靠的网盘分享平台。该系统支持用户使用微信扫码登录,上传文件分享链接可自定义,文件可一键保存到我的网盘。此外,该系统还支持微信和支付宝官方接口...
限速S3对象 使用保护S3存储桶 在一个RESTful目录结构中,将S3存储桶中的静态资产与动态应用程序终结点一起提供 用法 很少有用户会发现此项目足以满足他们的用例。 因此,最好借鉴此项目中的模式并构建自己的配置。 ...
主要介绍了nginx中的limit_req限速设置配置示例,本文直接给出配置文件例子,其中包含大量中文注释,需要的朋友可以参考下
nginx 读写限流 前段时间,开发了一个供外部调用的api,领导说要限流,请求单个IP,每秒50读次,写10次 万能的nginx,几行配置搞定 ...# 把需要限速的接口应用上上面的规则 # 写10/秒 location = /api/v1/trade {
主要介绍了Nginx服务器中map模块的配置与使用,文中同时给出了ngx_http_map_module模块的map命令用于制作服务器限速白名单的示例,需要的朋友可以参考下
高并发系统常见的限流有:限制总并发数(数据库连接池)、限制瞬时并发数(如nginx的limit_conn模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(nginx的limit_req模块,用来限制每秒的平均速率);...