本文将分4个步骤讲解:

1.api压力测试
2.查看api响应性能
3.nginx限流进行优化
4.查看优化结果

1 api压力测试
1.1 安装压测工具

yum -y install httpd-tools   # 安装压测工具
ab -v                       # 查看是否安装成功

1.2 开始api测试

ab -n1000 -c100 http://pear.tsaihoo.com/test.php # 100的并发请求,总共请求1000次

2 查看api响应性能

注:Requests per second: 24.47 [#/sec] (mean) 是指最大的qps (请求数/秒)

3 nignx限流进行优化

3.1 nginx限流可分为两种方式:

1)按连接数限速,即并发数(ngx_http_limit_conn_module)
2)按请求速率限速,按照ip限制单位时间内请求的数(ngx_http_limit_req_module)

3.2 nginx 限流配置:(这里用的按请求速率限速)

# 创建mylimit规则,根据用户的IP限流,限流的速率是1个请求每秒
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
# 应用mylimit规则,burst=1当1秒内存在2个请求可以缓存一个,其他的请求就报错,当burst很多时候,nodelay让后面的请求直接执行不用排队
limit_req zone=mylimit burst=1 nodelay;

3.3 在宝塔中加入配置:

或 vim /home/server/nginx/conf/nginx.conf直接进行配置,需要留意的是limit_req_zone放http模块,limit_req放server模块。

3.4 重启nginx

service nginx restart

3.5.查看是否启动成功

ps aux | grep nginx

4.查看优化结果
4.1 重复1.2步骤,结果:

4.2 查看nginx报错信息:

最后,我们发现压测的结果要比一开始的qbs要大,原因:nginx进行了限流,一次只能只能2个请求成功,后面的请求nginx直接返回了503(参考4.2),所以访问速度变快了。

还有不清楚的地方欢迎留言

高并发解决方案之“Nginx限流”相关推荐

  1. 可能要用心学高并发核心编程,限流原理与实战,分布式令牌桶限流

    实战:分布式令牌桶限流 本节介绍的分布式令牌桶限流通过Lua+Java结合完成,首先在Lua脚本中完成限流的计算,然后在Java代码中进行组织和调用. 分布式令牌桶限流Lua脚本 分布式令牌桶限流Lu ...

  2. 高并发系统处理之——限流

    高并发系统处理之--限流 对于高并发应用服务,有三个很好的方案可以保护系统 1.缓存 缓存的目的是提升系统访问速度和增大系统处理容量 2.降级 降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉 ...

  3. 程序员修神之路--高并发优雅的做限流(有福利)

    点击上方蓝色字体,关注我们 菜菜哥,有时间吗? YY妹,什么事? 我最近的任务是做个小的秒杀活动,我怕把后端接口压垮,X总说这可关系到公司的存亡 简单呀,你就做个限流呗 这个没做过呀,菜菜哥,帮妹子写 ...

  4. 高并发系统中的限流应该如何做?

    缓存 缓存比较好理解,在大型高并发系统中,如果没有缓存数据库将分分钟被爆,系统也会瞬间瘫痪. 使用缓存不单单能够提升系统访问速度.提高并发访问量,也是保护数据库.保护系统的有效方式.大型网站一般主要是 ...

  5. 分布式高并发服务三种常用限流方案简介

    以下文章来源于技术岁月 ,作者贺鹏Kavin 在高并发大流量系统中,由于并发大造成服务资源不足,负载过高,进而引发致一系列问题,这里的流量一般都是突发性的,由于系统准备不足,很难短期扩容来应对 ,进行 ...

  6. 高并发场景下的限流策略

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 在高并发的场景下,我们的优化和保护系统的方式通常有:多级缓存.资源隔离.熔断降级.限流等等. 今 ...

  7. springcloud 并发_SpringCloud-Zuul高并发请求下的限流处理

    高并发的情况肯定是实际场景中经常碰到的情况,那么这种情况下限流措施肯定是必须的,本文我们就来看看zuul中限流的处理 高并发的限流处理 1.创建项目 创建一个SpringCloud项目 2.添加依赖 ...

  8. 高并发解决方案-代理服务器Nginx

    文章目录 Nginx 1. Nginx概念 2.Nginx的应用场景 3. Linux环境下Nginx的安装与启动 4. Nginx静态网站部署 5. Nginx配置虚拟主机 5.1 端口绑定 5.2 ...

  9. 高并发解决方案(缓存、降级、限流)之限流笔记

    转载自:jinnianshilongnian 高并发系统时有三把利器用来保护系统:缓存.降级和限流.缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹:而降级是当服务出问题或 ...

最新文章

  1. Yahoo javascript 开源界面库YUI 和EXT
  2. android怎么监听多点触摸_什么是多点触控技术,有哪些用途
  3. 【计算机网络】HTTP 与 HTTPS ( HTTP 在网络各个层级的传输过程 | HTTPS 工作流程 | HTTPS 弊端 )
  4. Unity 中使用Async-Await替代 coroutines
  5. JavaScript实现knight Tour骑士之旅算法(附完整源码)
  6. 目录浏览器对话框控件 c# 1614822374
  7. C语言表达式的求解规则,C语言实现整数四则运算表达式的计算
  8. Python监视用户计算机桌面窗口焦点的变化情况
  9. Lecture 7:策略梯度
  10. ELementD对象
  11. 使用 WebSphere ESB 构建企业服务总线
  12. 读书篇:《细说PHP》三、PHP的语言结构
  13. Hadoop核心组件及组件介绍
  14. linux下 Wowza安装与ffmpeg测试
  15. Python利用模糊查询两个excel文件数据 导出新表格
  16. csv excel 对比
  17. 20个开源的工业设计软件
  18. 射频信号处理知识点点滴滴
  19. 野生葫芦娃用心写的nodejs 内置模块------文件操作
  20. python提取数组元素_使用python提取数组元素的一部分

热门文章

  1. 电脑录音软件怎么录音
  2. Python机器学习算法入门教程(四)
  3. SQL Server 系统时间
  4. 目标跟踪评估绘图(1):Windows10环境将pycharm跑出来的OTB100数据集的.txt结果文件,转换成.mat文件
  5. 万字精华总结RocketMQ的常见用法(案例+图)
  6. python气象绘图_Python气象绘图教程(三)
  7. 仙境传说-按键精灵脚步研究
  8. windows驱动开发——环境搭建
  9. JS 判断Chrome内核的360浏览器,并禁用
  10. 成功解决 由于找不到opencv_world410d.dll,无法执行代码,重新安装程序可能会解决此问题