Nginx如何限制每个客户端每秒处理请求数

nginx.conf 演示:

limit_req_zone $binary_remote_addr zone=one:10m rate=2r/m;#以用户IP作为key 开辟共享内存10M 并且限制每分钟2个请求

server
{
listen 8090;#监听端口
root html/;
location / {
limit_conn_status 500;#定义向用户返回的错误码 500
limit_conn_log_level warn; #错误等级
#limit_rate 50;#向用户返回限制每秒50字节
#limit_conn addr 1;#限制用户并发数1
limit_req zone=one burst=3 nodelay; #burst表示 假如用户请求连接超过了设置 那么将放入请求池中 burst表示 可以放入3个请求 如果第四个进来则返回503
#limit_req zone=one;

}

}

原文地址:https://www.cnblogs.com/jackey2015/p/10373886.html

时间: 2024-10-15 10:53:10

Nginx如何限制每个客户端每秒处理请求数的相关文章

每秒处理请求数和并发的关系

设平均响应时间为t(单位为毫秒), 并发量为c,每秒处理请求数为q,则: q = (1000/t) * c 就是这个关系: 想要升高q,就只有两条路:1) 降低t 2) 升高c 对于'1', 只能靠优化代码实现,只能尽量做,往往提升有限: 对于'2', 通常c与你服务器程序的请求处理模型有关,如果你服务器程序是"一个线程对应一个请求"的模式,那么c的最大值就受制于你能支撑多少个线程:如果是"一个进程对应一个请求"的模式,那么c的最大值则受制于最大进程数: 在升高c的

处理nginx访问日志,筛选时间大于1秒的请求

#!/usr/bin/env python ''' 处理访问日志,筛选时间大于1秒的请求 ''' with open('test.log','a+',encoding='utf-8') as f_a: with open('wkxz-api.access.log') as f: for line in f.readlines(): if line[-2:] == "-\n" : num =float(line[-7:-2]) else: num=float(line[-6:]) if

云计算之路-阿里云上:Wireshark抓包分析一个耗时20秒的请求

这篇博文分享的是我们针对一个耗时20秒的请求,用Wireshark进行抓包分析的过程. 请求的流程是这样的:客户端浏览器 -> SLB(负载均衡) -> ECS(云服务器) -> SLB -> 客户端浏览器. 下面是分析的过程: 1. 启动Wireshark,针对内网网卡进行抓包. 2. 在IIS日志中找出要分析的请求(借助Log Parser Studio) 通过c-ip(Client IP Address)可以获知SLB的内网IP,在分析Wireshar抓包时需要依据这个IP进

Android实践--Http 客户端编程之GET请求

Android Http 客户端编程之GET 说起Http编程,不尽然想起GET和POST两种请求方式,本文以简洁明了的的步骤和说明,将Android中常用的Http编程的方式列举出来,给刚刚在Android路上起步的奋斗者参考和指引,希望快速上手应用Android Http编程的同仁可以先绕过下面一段话. 做一件事之前,我们是否能驻足想一下要做这件事,我们需要做哪些工作,然后在经验中积累出模板思路和步骤,在程序界通常用设计模式来概括这些工作良好的解决方案.有了这些总结积累,这样我们就能举一反三

云计算之路-阿里云上:超过70秒的请求抓包分析

超过70秒的请求是通过分析IIS日志发现的: 10.159.63.104是SLB的内网IP. 通过Wireshark抓包分析请求是9:22:21收到的(tcp.stream eq 23080): 09:22:21.299838000 10.159.63.104 10.161.241.208 HTTP 291 GET /eastsea/p/3764040.html HTTP/1.0 这个请求响应内容的长度是:Content-Length 1154110(1.1MB) 云服务器(ECS)在收到请求后

查询每秒平均事务数

1.直接查询视图 select * from DBA_HIST_SYSMETRIC_SUMMARY where metric_unit = 'Transactions Per Second' METRIC_NAME 监控指标 METRIC_UNIT 监控单位 INTSIZE 采样长度(厘秒),一般是360000 NUM_INTERVAL 观察间隔(分钟),一般是60 AVERAGE 监控时间段内的平均值 --查询一段时间内的平均每秒事务数 select instance_number, metr

Nginx 限流(请求数)

limit_req_zone 用于设置每个IP在单位时间内所允许发起的请求数,值 zone=rate=10r/s 表示每个IP每秒只允许发起10个请求.limit_req的作用类似与缓冲区,用于缓存还没有来得及处理的请求.值 burst=100 表示缓存的请求数为100: http{ #定义每个IP的session空间大小 limit_zone one $binary_remote_addr 20m; #与limit_zone类似,定义每个IP每秒允许发起的请求数 limit_req_zone

小蚂蚁学习APP接口开发(9)—— APP版本升级的接口方法——处理客户端发来的请求数据

今天的笔记主要来记录最后的一个知识要点,APP客户端版本升级的接口开发. APP的开发主要由伟大而神圣的用户来更新,更新的流程应该是这样的: 开启APP--请求初始化接口init.php--检测是否需要更新---否--首页 ---是--更新 在初始化接口的时候,需要客户端发送几个数据: app_id            客户端id,比如: 1,安卓手机 2,iphone手机 version_id        大版本号id version_mini     小版本号id did        

nginx负载均衡下客户端ip地址的获得

在nginx中添加一个配置项: proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 然后在asp.net程序中获取 请求头X-Forwarded-For 中的信息.如果经过了多个负载均衡器(代理),则可能会有多个IP,如: X-Forwarded-For:159.16.156.1, 78.56.156.10 此时,第一个ip地址为客户端的ip,第二个为它经过的第一个负载均衡器(代理)