当前位置: 首页 > 网络应用技术

NGINX配置系列(5)限制连接数量

时间:2023-03-05 17:26:08 网络应用技术

  该模块通常在以下场景中使用:

  ①限制尖峰,获取购买和合并

  ②,下载带宽限制

  ③,防止攻击

  详细说明:

  NGX_HTTP_LIMIT_CONN_MODULE模块是异常的,负载较大,甚至是对某些服务器流量等的恶意攻击访问,以执行并发限制。此模块可以根据定义的键限制每个密钥的连接数量。不计算所有连接。仅当服务器处理请求并读取了整个请求标头时,才能计算连接。

  该模块提供了两个配置参数,即limit_conn_zone和limit_conn,其中limit_conn_zone只能在HTTP段中配置,而limit_conn可以在http,server,server,stoce stoct段中配置。

  语法:limit_conn_zone $ variable区域=名称:size;

  配置部分:http

  参数描述:

  本指令描述了会话状态存储区域。当前连接编号保存在密钥状态,密钥的值可以是特定变量的任何非空值(不会考虑空值)。例如,有以下配置的示例:

  笔记:

  ①客户端的IP地址是钥匙。注意到这里使用binary_remote_addr变量,而不是remote_addr variable.binary_remote_addr变量角色是获得二进制格式的客户端地址。远程_ADDR变量的角色是获得IP地址客户端的两个变量在nginx中的许多端变量中是两个。

  ②$远程_ADDR变量的长度为7个字节至15个字节,存储状态在32位平台之间占32或64个字节,而64位平台则由64位平台占据。

  ③$ binary_remote_addr变量的长度是固定的4个字节。存储状态占32位平台的32或64个字节,64个字节为64位平台。

  ④可以保留1M共享空间32,000 32位和164位状态。

  ⑤如果共享内存空间耗尽,服务器将返回到所有后续请求,以返回503(服务暂时不可用)错误。

  语法:limit_conn Zone_name编号

  配置段:http,服务器,本地

  参数描述:

  该指令指定同时指定每个给定键值的最大连接数,并且在超过此数字时将返回503(服务)错误。limit_conn是与密钥相对应的网络连接总数的当前限制。您可以根据IP限制IP维度的连接总数,或者根据服务域名限制域名的连接总数。(仅由NGINX处理并已读取该请求连接整个请求标头按计数器计数)。例如(同时仅允许20个连接):

  limit_conn_zone $ binary_remote_addr区域=测试:20m;

  主要用于定义变量,区域名称,共享内存大小

  limit_conn测试20;

  配置先前的测试定义,并将同一IP的并发连接的数量限制为20

  示例屏幕快照如下:

  ①在nginx.conf中的http {}中添加以下代码:

  ②在网站的网站配置中添加以下代码,需要限制并发的数量并下载带宽:

  补充说明以下参数:

  $ binary_remote_addr是同一客户端的限制IP地址。

  $ server_name是同一服务器的最大并发号码。

  limit_conn仅限于连接连接的数量。

  limit_rate是限制下载速度。

  事务有两个方面。尽管NGX_HTTP_LIMIT_CONN_MODULE模块可以解决当前的并发问题,但将引入其他一些问题。错误?在这种情况下,可以在前端启用此模块,或者设置白名单。