`
on__the__way
  • 浏览: 23989 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx限速

 
阅读更多

     在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限速之连接数限制技巧的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

    Nginx服务器限制访问速度的配置方法

    主要介绍了Nginx服务器限制访问速度的配置方法,尤其是当服务器中存在ftp下载等服务时尤为有用,需要的朋友可以参考下

    Nginx带宽控制(限速模块使用)

    有个老项目,通过 Squid 提供文件下载功能,利用 delay_parameters 实现带宽控制,问题是我玩不转 Squid,于是盘算着是不是能在 Nginx 里找到类似的功能。 好消息是 Nginx 提供了 limit_rate 和limit_rate_after,...

    nginx镜像制作.zip

    docker下制作nginx镜像,限流限速配置,ssl认证镜像

    5天精通nginx最全技术教程

    限速 黑白名单 跨域处理 负载均衡 htts配置 nginx高可用 nginx动态添加模块 平滑升级 常见问题 手动日志分隔 自动日志分隔 pid问题 附录 附录1-目录结构 附录2-location规则 附录3-跨域处理 附录4-...

    Nginx服务器对数据传输速度限制的基本配置方法讲解

    主要介绍了Nginx服务器对数据传输速度限制的基本配置方法讲解,包括第三方开发的限速模块Nginx-limit-traffic-rate-module的使用介绍,需要的朋友可以参考下

    使用nginx实现分布式限流的方法

    一般对外暴露的系统,在促销或者黑客攻击时会涌来大量的请求,为了保护系统不被瞬间到来的高并发流量给打垮, 就需要限...接下来通过本文给大家分享使用nginx实现分布式限流的方法,感兴趣的朋友跟随脚本之家小编一起学习吧

    誉天邹老师运维系列教程之二-Nginx网站架构实战视频

    教程名称:誉天邹老师运维系列教程之二-Nginx网站架构实战视频课程目录:【】01-Nginx架构及安装【】02-Nginx虚拟主机及相关配置【】03-Nginx地址重写【】04-Nginx日志管理和限速【】05-Nginx反向代理和负载均衡 ...

    nginx黑名单和django限速,最简单的防恶意请求方法分享

    今天小编就为大家分享一篇nginx黑名单和django限速,最简单的防恶意请求方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    新版可运营级网盘系统网站源码支持转存和限速下载

    新版可运营级网盘系统网站源码,支持转存和限速下载。一款安全可靠的网盘分享平台。该系统支持用户使用微信扫码登录,上传文件分享链接可自定义,文件可一键保存到我的网盘。此外,该系统还支持微信和支付宝官方接口...

    nginx-s3-gateway:NGINX S3缓存网关

    限速S3对象 使用保护S3存储桶 在一个RESTful目录结构中,将S3存储桶中的静态资产与动态应用程序终结点一起提供 用法 很少有用户会发现此项目足以满足他们的用例。 因此,最好借鉴此项目中的模式并构建自己的配置。 ...

    nginx中的limit_req限速设置配置示例

    主要介绍了nginx中的limit_req限速设置配置示例,本文直接给出配置文件例子,其中包含大量中文注释,需要的朋友可以参考下

    nginx 如何实现读写限流的方法

    nginx 读写限流 前段时间,开发了一个供外部调用的api,领导说要限流,请求单个IP,每秒50读次,写10次 万能的nginx,几行配置搞定 ...# 把需要限速的接口应用上上面的规则 # 写10/秒 location = /api/v1/trade {

    详解Nginx服务器中map模块的配置与使用

    主要介绍了Nginx服务器中map模块的配置与使用,文中同时给出了ngx_http_map_module模块的map命令用于制作服务器限速白名单的示例,需要的朋友可以参考下

    Nginx源码研究之nginx限流模块详解

    高并发系统常见的限流有:限制总并发数(数据库连接池)、限制瞬时并发数(如nginx的limit_conn模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(nginx的limit_req模块,用来限制每秒的平均速率);...

Global site tag (gtag.js) - Google Analytics