控制并发量(连接数)

ngx_http_limit_conn_module 提供了限制连接数的能力。主要是利用limit_conn_zone和limit_conn两个指令。

利用连接数限制 某一个用户的ip连接的数量来控制流量。

注意:并非所有连接都被计算在内 只有当服务器正在处理请求并且已经读取了整个请求头时,才会计算有效连接。此处忽略测试。

配置语法:

Syntax:  limit_conn zone number;
Default: —;
Context: http, server, location;

(1)配置限制固定连接数

如下,配置如下:

上图配置如下:

http {include       mime.types;default_type  application/octet-stream;#cachelua_shared_dict dis_cache 128m;#限流设置limit_req_zone $binary_remote_addr zone=contentRateLimit:10m rate=2r/s;#根据IP地址来限制,存储内存大小10Mlimit_conn_zone $binary_remote_addr zone=addr:1m;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;#所有以brand开始的请求,访问本地changgou-service-goods微服务location /brand {limit_conn addr 2;proxy_pass http://192.168.211.1:18081;}location /update_content {content_by_lua_file /root/lua/update_content.lua;}location /read_content {limit_req zone=contentRateLimit burst=4 nodelay;content_by_lua_file /root/lua/read_content.lua;}}
}

表示:

limit_conn_zone $binary_remote_addr zone=addr:10m;  表示限制根据用户的IP地址来显示,设置存储地址为的内存大小10Mlimit_conn addr 2;   表示 同一个地址只允许连接2次。

测试:

此时开3个线程,测试的时候会发生异常,开2个就不会有异常

(2)限制每个客户端IP与服务器的连接数,同时限制与虚拟服务器的连接总数。(了解)

如下配置:

limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server {  listen       80;server_name  localhost;charset utf-8;location / {limit_conn perip 10;#单个客户端ip与服务器的连接数.limit_conn perserver 100; #限制与服务器的总连接数root   html;index  index.html index.htm;}
}

Nginx限流-并发量限流配置相关推荐

  1. 大促在即,拥有亿级流量的电商平台开发了一个订单系统,我们应该如何来预估其并发量?如何根据并发量来合理配置JVM参数呢?

    1. 需求分析 大促在即,拥有亿级流量的电商平台开发了一个订单系统,我们应该如何来预估其并发量?如何根据并发量来合理配置JVM参数呢? 假设,现在有一个场景,一个电商平台,比如京东,需要承担每天上亿的 ...

  2. nginx看最大并发量_Nginx高并发配置思路(轻松应对1万并发量)

    测试机器为腾讯云服务器1核1G内存,swap分区2G,停用除SSH外的所有服务,仅保留nginx,优化思路主要包括两个层面:系统层面+nginx层面. 一.系统层面 1.调整同时打开文件数量 ulim ...

  3. 关于nginx上的limit_req_zone模块限流使用与geo与map的白名单配置

    今天正好是五一假期 记录一下前几天关于开发中遇到的nginx上的问题 之前接口被人扒了 访问量激增 之前的同事配置了一个nginx上的配置来解决 如下 1.在nginx的http模块下面加上下面的语句 ...

  4. 互联网高并发解决方案(2)--高并发服务限流特技

    RPC和本地JAVA调用的区别 RPC远程调用:一般是可以跨平台使用的,采用Socket技术,只要语言支持socket技术就可以进行互相通信.其实就是socket+反射实现的. 本地调用:只能支持Ja ...

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

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

  6. 高并发系统限流-漏桶算法和令牌桶算法

    参考: https://www.cnblogs.com/xuwc/p/9123078.html http://www.cnblogs.com/LBSer/p/4083131.html https:// ...

  7. 高并发系统--限流算法

    在开发高并发系统时,有三把利器用来保护系统:缓存.降级和限流.通过限流,我们可以很好地控制系统的qps,从而达到保护系统的目的.主要算法有:计数器算法,滑动窗口算法,漏桶算法,令牌桶算法 1.计数器算 ...

  8. 2.Nginx实现负载均衡、限流、缓存、黑白名单和灰度发布

    Author:Young Date:2020-07-22 参考链接: https://maimai.cn/article/detail?fid=1499586218&efid=7sV_7ICG ...

  9. 分布式系统并发请求限流平台Sentinel功能特性调研-集成测试(中篇)

    摘 要 随着近些年系统稳定性要求越来越高,而系统限流则是其中提高系统稳定性的手段之一,而在众多限流平台中Sentinel凭着丰富功能特性和多次阿里双十一的线上实践,成为最热门限流平台之一,本文就Sen ...

最新文章

  1. Openresty最佳案例 | 第3篇:Openresty的安装
  2. 【tf.keras】TensorFlow 1.x 到 2.0 的 API 变化
  3. KickStart 无人值守安装系统
  4. MySQL修改数据库:ALTER DATABASE用法简介
  5. visual stadio 添加 Extjs 智能提示!
  6. C++ OJ在线编程常见输入输出技巧与示例
  7. Linux通过第三方应用提权实战总结
  8. ORA-23616:执行块5失败
  9. 清华大学开始招收高二学生,数学天赋是最重要的入围条件
  10. 【差分隐私的指数机制该怎么理解?】差分隐私系统学习记录(三)
  11. 利用迅捷PDF分割器实现PDF文档的批量拆分
  12. postgresql用户和角色
  13. [文摘20070308]中国历史朝代歌
  14. 生成的exe程序默认以管理员权限启动
  15. ROS机器人021-机器人命令行发送cmd_vel话题及/cmd_vel geometry_msgs/Twist示例
  16. POC原型开发:巡店 一期结果
  17. 小狗AI自动建站V7 sitemap(网站地图)使用说明
  18. 【软考 系统架构设计师 简明教程】简介与目录
  19. 稳压二极管与TVS二极管的区别
  20. 三年级计算机帮助我们学本领,三年级学本领100字作文

热门文章

  1. 【06】sass编译工具(弃)
  2. 谈谈我的移动端rem适配方案
  3. JS实现图片预览与等比缩放
  4. 编译器会影响编译吗?
  5. Tuxedo学习门户网站
  6. ajax 的同步和异步
  7. [转]自定义ASP.NET MVC Html辅助方法
  8. 不同编程语言的取模运算%
  9. SET QUERY_GOVERNOR_COST_LIMIT
  10. Liunx 常用命令 (几乎包含所有了)