该模块通常在以下场景中使用:
①限制尖峰,获取购买和合并
②,下载带宽限制
③,防止攻击
详细说明:
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模块可以解决当前的并发问题,但将引入其他一些问题。错误?在这种情况下,可以在前端启用此模块,或者设置白名单。