`
qq362228416
  • 浏览: 33342 次
社区版块
存档分类
最新评论

nginx 读写限流

 
阅读更多

前段时间,开发了一个供外部调用的api,领导说要限流,请求单个IP,每秒50读次,写10次

万能的nginx,几行配置搞定


# 先定义好规则,需要写在server外面
limit_req_zone $binary_remote_addr $uri zone=api_write:20m rate=10r/s;  # 写
limit_req_zone $binary_remote_addr $uri zone=api_read:20m rate=50r/s;   # 读

# 把需要限速的接口应用上上面的规则

# 写10/秒
location = /api/v1/trade {
    limit_req zone=api_write burst=10;
    proxy_pass http://api_server;
}
# 查询50/秒
location /api/v1/query {
    limit_req zone=api_read burst=50;
    proxy_pass http://api_server;
}

nginx -s reload

还是那句话,应用程序不需要关心,一句代码都不用动

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

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

    **Nginx 读写限流详解** 在高并发的网络服务中,为了保护服务器资源、防止恶意攻击或过载,通常需要对客户端的请求进行流量控制。Nginx 提供了内置的限流模块 `limit_req`,使得我们可以轻松地实现读写限流。下面...

    基于Redis实现分布式应用限流的方法

    1. 高性能:Redis作为内存数据库,读写速度快,能够快速响应限流决策。 2. 可扩展性:在分布式环境中,多个应用实例可以共享同一套限流规则,通过Redis进行协调。 3. 灵活性:可以通过调整Redis数据结构中的参数来...

    nginx_tcp_proxy_module-master

    1. **数据库代理**:Nginx作为数据库的代理,可以实现读写分离、负载均衡等功能。 2. **安全防护**:作为边界防火墙的一部分,TCP代理可以过滤恶意流量,保护内部服务器。 3. **API网关**:对于非HTTP的API接口,...

    nginx的rtmp模块,用于直播服务器的搭建

    Nginx RTMP模块是由 nginx-rtmp-module 社区维护的一个开源插件,它扩展了Nginx的功能,使其能够处理RTMP流。该模块支持以下关键特性: 1. **推流与拉流**:支持客户端推送RTMP流到服务器,以及用户从服务器拉取流...

    Nginx运维宝典

    - **事件消费者**:处理具体的事件,例如读写操作或连接关闭等。 - **异步操作支持**:利用异步机制执行磁盘读取等耗时操作。 该框架具有以下特点: - **优点**:极少的上下文切换,降低了系统开销。 - **缺点**:...

    nginx-gridfs.tar.gz

    通过这个压缩包,用户可以设置Nginx来代理对MongoDB中存储的文件的请求,实现Web服务直接读写大文件的功能,而无需通过应用程序层处理文件流。这种方式优化了Web服务器性能,减少了应用程序的复杂性,并利用了...

    秒杀实战 redis nginx 分布式session-secKill.zip

    Nginx还可以通过配置限流规则,防止恶意用户大量请求,保护系统稳定。此外,Nginx可以与Redis结合,实现Session的共享,解决用户会话跨服务器的问题。 在分布式环境中,Session管理是个挑战。传统的Session存储在...

    使用Nginx搭建流媒体服务器实现直播功能

    【使用Nginx搭建流媒体服务器实现直播功能】 在当今数字化时代,直播已经成为各行各业不可或缺的一部分,从电商到教育,从游戏到娱乐,无处不在。本文将指导你如何使用Nginx搭建一个流媒体服务器,以支持实时直播...

    nginx 1.0.4源码 源代码

    - **stream**:TCP 和 UDP 流处理模块。 - **modules**:外部扩展模块,如负载均衡、URL重写等。 - **conf**:默认配置文件和样例。 - **objs**:编译后的目标文件和可执行程序。 ### 2. 主要模块 #### 2.1 HTTP ...

    大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程

    - 限流控制:防止恶意访问。 - 排行榜:利用ZSet实现排序功能。 4. **Redis与Spring集成**: - 配置RedisTemplate。 - 注解支持:@Cacheable/@CachePut/@CacheEvict。 #### 四、Solr搜索引擎实践 **Solr**是...

    【spring-boot-seckill分布式秒杀系统 v1.0】从0到1构建的java秒杀系统源码+安装说明

    3、基于SLB价格以及灵活性考虑后面我们接入Nginx做限流分发,来保障后端服务的正常运行。 4、后端秒杀业务逻辑,基于Redis 或者 Zookeeper 分布式锁,Kafka 或者 Redis 做消息队列,DRDS数据库中间件实现数据的读写...

    dubbo zookeeper nginx redis MQ 等实战-rumoprojects.zip

    在微服务架构中,Nginx 可以作为API网关,统一入口,处理跨域问题,进行路由分发,以及提供限流、熔断等保护措施。 4. **Redis**:Redis 是一个开源的、基于键值对的数据存储系统,支持字符串、哈希、列表、集合和...

    云服务器环境安装,包括mysql,nginx,java,redis一站式安装

    它的高速读写性能和丰富的数据结构支持,使其在实时数据处理和高性能应用场景中大放异彩。 接下来,我们将按照以下步骤进行安装: 1. **安装MySQL**:首先,解压`mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz`到一...

    大流量稳定交易系统

    - **业务应用系统限流**:根据业务需求对读写操作进行限制,通常遵循“读少限,写多限”的原则,并且限流标准应基于压力测试结果来确定。 - **数据库限流**:对数据库层面的操作进行限制。 #### 四、分流原则 - ...

    基于Redis缓存数据库和Nginx负载均衡技术的购物网站性能优化.docx

    此外,为了进一步提升数据读写性能,文章中提到了Redis缓存数据库。Redis是一个高性能的键值存储系统,常用于缓存频繁访问的数据,减少对底层数据库的压力。通过将热门商品信息、用户会话等数据存储在Redis中,可以...

    高并发高稳定交易系统.pdf

    4. **限流策略**:区分正常和超预期流量,如通过Nginx层限流、Web应用限流、DB限流等方式控制,防止系统因过载而崩溃。 5. **系统降级**:在系统压力过大时,可对某些非核心功能进行降级,如页面降级为静态版本,...

    大厂不在话下——5w字Java烫手面经150+页.pdf

    首先,Nginx作为一个高效稳定的Web服务器,其主要作用包括动静分离、反向代理、限流和高可靠性。动静分离可以减轻应用服务器如Tomcat的压力,将静态资源如HTML、CSS、JavaScript等直接由Nginx返回,提高响应速度。...

    redis_cluster:一个开放式的nginx lua redis集群

    在Nginx中,Lua可以用于编写复杂的逻辑,如路由、认证、限流等,增强了Nginx的功能。 4. **OpenResty (ngx_openresty)**: OpenResty集成了Nginx、lua-jit和一系列lua库,使得开发者能够在Nginx上进行高性能的Web...

Global site tag (gtag.js) - Google Analytics