nginx 限制并发访问及请求频率
0.
1.参考
Module ngx_http_limit_conn_module
Module ngx_http_limit_req_module
漏桶这个名字,其实就非常形象的描述了算法本身的原理。大家都知道,一个身上打了 n 个眼儿的桶,无论你倒进桶里的水多还是少,漏出来的水的流速也会保持稳定,这就是此算法的本质。再以 NGINX + PHP-FPM 为例,我们在 NGINX 配置里定义一个最大处理请求的速度,如果 PHP-FPM 的稳定处理速度峰值是 1000 RPS,那就在 NGINX 里定义处理请求速度最大为 1000 RPS。当 RPS 已经大于这个值的时候,多出来的请求就被 NGINX 这个桶暂时储存起来,排着队等待处理。在 NGINX 的精心照料下,PHP-FPM 会相对稳定的处理来自 NGINX 的请求,而不会出现突然暴增的请求让 PHP-FPM 处理不过来,甚至挂掉。
然而桶也有大小,NGINX 也一样,假如请求太多太多,桶都装不下了,那么桶将会把多出来的请求直接漏掉,返回 503 错误。
最大请求数max_requests
最长执行时间request_terminate_timeout
2.vi /etc/nginx/nginx.conf
在 http{} 添加:
## 2017-12-18 【工作】Nginx限制IP并发连接数和请求数的研究 http://www.jiagoumi.com/work/718.html
#调整为1,nginx -t 检查,再reload,查看 error.log
#默认为503 Service Unavailable,由于临时的服务器维护或者过载,
#可以429 Too Many Requests 用户在给定的时间内发送了太多的请求 # [error] limiting connections by zone "conn_ip"
limit_conn_zone $binary_remote_addr zone=conn_ip:10m;
limit_conn conn_ip 10; #如果这里设置为限制1个ip只能1个连接,log 显示 req_freq_ip 相关控制信息 # [error] limiting connections by zone "conn_server"
limit_conn_zone $server_name zone=conn_server:10m;
limit_conn conn_server 1000; limit_req_zone $binary_remote_addr zone=req_freq_ip:10m rate=3r/s;
#这样相当于容量为0,都会被503,没有意义
#limit_req zone=req_freq_ip; #By default, the maximum burst size is equal to zero #超过每秒3个请求,放入最多容纳10个的缓冲区,或者理解为10个令牌?
#超过3.x,则log显示 [warn] delaying; 超过10.x,则log显示 [error] limiting, 会被503
limit_req zone=req_freq_ip burst=10; #后面加 nodelay 则未超过10.x的拿到令牌的请求不会被延迟
#limit_req zone=req_freq_ip burst=10 nodelay; limit_req_status 429; limit_conn_log_level error; #info | notice | warn | error 不支持 debug
3.这里打开一个网页,实际上建立了多个连接,其中也包括连接复用。

nginx 限制并发访问及请求频率的更多相关文章
- php-cgi和php-fpm,Windows环境下解决Nginx+php并发访问阻塞问题。
php-cgi 是运行php,php-fpm是守护php-cgi进程 nginx配置目录运行php location ~ \.php$ { ...
- nginx比apache处理静态文件速度快,但是nginx处理大量并发的php请求时,容易出现502错误,频率大概是多少
首先要明确一点的是502是怎么出现的,为什么会出现502呢? 一般而言,出现502的错误是因为php-cgi连接数不够导致的.举个例子:php-cgi开10个进程,前端发20个请求,每个请求的脚本都s ...
- Nginx - 限制并发、限制访问速率、限制流量
1. 前言 本文针对 Nginx 的三个模块进行配置,并证实各自的功能特点: (1)limit_conn_zone 模块 - 限制同一 IP 地址并发连接数: (2)limit_request 模块 ...
- nginx单个ip访问频率限制
一.限制所有单个ip的访问频率 1.http中的配置 http { #$limit_conn_zone:限制并发连接数 limit_conn_zone $binary_remote_addr zone ...
- Nginx并发访问优化
Nginx反向代理并发能力的强弱,直接影响到系统的稳定性.安装Nginx过程,默认配置并不涉及到过多的并发参数,作为产品运行,不得不考虑这些因素.Nginx作为产品运行,官方建议部署到Linux64位 ...
- Nginx 限制并发连接和并发请求数配置
Nginx限制并发连接和并发请求数配置 by:授客 QQ:1033553122 测试环境 nginx-1.10.0 配置介绍 查看是否内置模块 # pwd /mnt/nginx-1.10.0 ...
- nginx请求频率限制模块ngx_http_limit_req_module
模块: ngx_http_limit_req_module 作用: 限制客户端请求频率,防止恶意攻击 配置示例: http { limit_req_zone $binary_remote_addr z ...
- Nginx优化_访问并发量(进程可以打开的最大文件数量)
如果客户端访问服务器提示“Too many open files”如何解决? [root@proxy ~]# ab -n 2000 -c 2000 http://192.168.1.100/ # ...
- [转]高并发访问下避免对象缓存失效引发Dogpile效应
避免Redis/Memcached缓存失效引发Dogpile效应 Redis/Memcached高并发访问下的缓存失效时可能产生Dogpile效应(Cache Stampede效应). 推荐阅读:高并 ...
随机推荐
- Going Home HDU - 1533 费用流
http://acm.hdu.edu.cn/showproblem.php?pid=1533 给一个网格图,每两个点之间的匹配花费为其曼哈顿距离,问给每个的"$m$"匹配到一个&q ...
- Alpha 冲刺 (4/10)
目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:冲刺4 团队部分 后敬甲 过去两天完成了哪些任务 文字描述 主页部分图标的替换 -拍照按钮的设计和测试 GitHub代码 ...
- MySQL MyISAM引擎转换为InnoDB操作记录
进入mysql命令行模式: # mysql -uroot -ppwd 1.查看mysql提供什么存储引擎: mysql> show engines; 2.查看mysql当前提供的默认存储引擎: ...
- Kafka中文官方文档
参见链接:http://orchome.com/kafka/index
- 【原创】Linux基础之windows linux双系统
1 下载iso opensuse 下载: http://download.opensuse.org/distribution/openSUSE-stable/iso/openSUSE-Leap-15. ...
- a标签的4种状态及设置CSS
a:link 超链接的默认样式 a:visited 访问过的(已经看过的)链接样式 a:hover 鼠标处于鼠标悬停状态的链接样式 a:active 当鼠标左键按下时,被激活(就是鼠标按下去那一瞬间) ...
- ACM-ICPC 2018 焦作赛区网络预赛 I Save the Room
Bob is a sorcerer. He lives in a cuboid room which has a length of AAA, a width of BBB and a height ...
- iOS ReplayKit 录屏 框架的使用
在需要使用录屏的 地方 引入 头文件 #import <ReplayKit/ReplayKit.h> 添加代理 RPPreviewViewControllerDelegate 因为 iOS ...
- chkconfig: command not found
问题描述 Ubuntu 16.04 下安装 Nginx 服务器,在添加 nginx 服务时出现如下信息 # chkconfig --add nginx chkconfig: command not f ...
- CentOS 7 部署 Spring Boot
Spring Boot 内嵌了tomcat .我们可以将Boot打成 jar 包丢到服务器上运行才行. Spring Boot已经帮我们打理好了这一切,如果项目是继承自 spring-boot-sta ...