首页 > 系统相关 >nginx: 限流中连接和请求的区别:

nginx: 限流中连接和请求的区别:

时间:2024-09-26 11:35:51浏览次数:1  
标签:请求 zone req nginx 限流 limit 连接 conn

一,关于limit_req和limit_conn的区别

what is the difference  between connection and request? 

  • connection是连接,即常说的tcp连接,通过三次握手而建立的一个完整状态机。建立一个连接,必须得要三次握手。
    断开连接时要有四次挥手的操作.
  • request是指请求,即http请求,tcp连接是有状态的,而构建在tcp之上的http却是无状态的协议

通过打开一个网页,然后通过wireshark可以看到,
一个连接建立后(即三次握手后),在这个连接断开之前(即四次挥手之前),会有很多的http request,
这就是他们的区别:即一个连接的生命周期中,会存在一个或者多个请求,
这么做的目的: 为了加快效率,避免每次请求都要三次握手建立连接,
现在的HTTP/1.1协议都支持这种特性,叫做keepalive。

二,实际例子:

1,   limit_conn

limit_conn_zone $binanry_remote_addr zone=conn_zone:1m;
limit_conn conn_zone 1;  

例子中的配置,表明以ip为key,来限制每个ip访问网站的时候,最多只能有一个在线,否则其余的都要返回不可用。

这种情况就是一个静止状态的计数可以实现,而无关乎多长时间。

举个例子,如果你的这个连接一直不释放,即使你通过这一个连接发送出再多的request请求,
              只要我能够应付,那么我就帮你处理

但是,如果你只需要处理2个请求,但是这两个请求是分别用两个连接同时发送过来的,
        那么,我就只能处理其中一个,另外一个就不行

这就是他的区别。

2,limit_req

limit_req_zone $binary_remtoe_addr zone=req_zone:1m rate=1r/s; #这里为共享内存配置了一个速率rate,
limit_req zone=req_zone;

表明:对于每个ip来说,处理请求的速度不超过每秒1个请求

可以看到这是个速度值,每秒1个请求,

就是说:如果某ip同时发送出100个请求(不管是通过100个连接还是1个连接),
          只要你请求到底的速度超过每秒1个,那么我就会拒绝你。


标签:请求,zone,req,nginx,限流,limit,连接,conn
From: https://www.cnblogs.com/architectforest/p/18433125

相关文章

  • Nginx 配置
    nginx配置文件的的组成Nginx配置文件主要由以下部分组成:全局块、events块、http块.......等组成。全局块:nginx的全局配置作用:从配置文件开始到event块之间的内容,主要会设置影响nginx服务整体运行的配置指令。主要配置包括:运行nginx服务的用户(组)、允许生成的worker_process......
  • nginx: 限制每个ip的并发连接数
    一,limit_conn_zonelimit_conn_zone$binary_remote_addrzone=perip:10m; limit_conn模块用于限制每个客户端的并发连接数,以防止资源被单一客户端耗尽。说明: #定义一个共享内存区域,用于存储连接状态#$binary_remote_addr是客户端的IP地址#zone=perip:10m定义名为......
  • Ubuntu 安装Mysql+Redis+Nginx
    一、安装MySql1.新系统需要安装一下更新aptupdate-yaptdist-upgrade-yaptinstall-ywget2.安装mysql,并修改配置aptinstall-ymysql-servermysql配置文件通常位于vi/etc/mysql/mysql.conf.d/mysqld.cnf在[mysqld]把bind改成0.0.0.0,增加连接数,修改mode,开......
  • 【保姆式】linux nginx安装及配置教程+防火墙设置
    linux版本:CentOS-7-x86_64-DVD-1708文章目录1.换个源先1.前置准备(看过前两博客可以直接跳过)2.步骤二:对系统本身的yum源进行备份3.步骤三:下载阿里云CentOS7镜像源配置文件4.步骤四:删除除阿里及备份外的所有cent源文件5.步骤五:清除旧的YUM缓存6.步骤六:创建新......
  • Nginx 反向代理 apache kafka UI
    背景我将apachekafkaUI部署到Linux服务器上了,然后我不能直接链接到服务器IP和端口。需要nginx做代理。我这里假设apachekafkaUI已经能够正常连接kafka了。步骤在apachekafkaUI所在的服务器上面设置环境变量[root@kafka1apachekafkaUI]#exportSERVER_SERVLET_CONT......
  • 基于Sentinel自研组件的系统限流、降级、负载保护最佳实践探索
    一、Sentinel简介Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel具有以下特征:•丰富的应用场景:Sentinel承接了阿里巴巴近10年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷......
  • NGINX 和 HAProxy:基于公有云标准环境的用户体验测试对比
    原文作者:AmirRawdat-F5解决方案工程师原文链接:NGINX和HAProxy:基于公有云标准环境的用户体验测试对比转载来源:NGINX中文官网NGINX唯一中文官方社区,尽在 nginx.org.cn 阅读原文。业内许多性能基准测试,都是基于峰值吞吐量或每秒请求数(RPS),但这些......
  • 开启nginx_stub_status prometheus
    开启nginx_stub_statusprometheus要在Nginx中启用nginx_stub_status并将其数据暴露给Prometheus,你需要执行以下步骤:配置Nginx以使用stub_status。设置Prometheus的exporter来抓取nginx_stub_status页面。配置Prometheus服务来抓取exporter的数据。......
  • 基于Sentinel自研组件的系统限流、降级、负载保护最佳实践探索
    一、Sentinel简介Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel具有以下特征:•丰富的应用场景:Sentinel承接了阿里巴巴近10年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集......
  • Server-Sent Events (SSE) Koa2 & Nginx & React 实践
    Server-SentEvents(SSE)Koa2&Nginx&React实践得鹿梦鱼前端+node全栈,骑马找马中,有兴趣可私聊​关注他 在现代Web应用中,实时数据传输变得越来越重要。Server-SentEvents(SSE)是一种轻量级的技术,允许服务器向客户端主动发送更新。本文将详细介......