1 个回答
可以通过ngx_http_limit_conn_module模块限制一个IP的并发连接数,配置如下:
limit_conn_zone: 设定保存各个键(例如$binary_remote_addr)状态的共享内存空间的参数,zone=空间名字:大小
大小的计算与变量有关,例如$binary_remote_addr变量的大小对于记录IPV4地址是固定的4 bytes,而记录IPV6地址时固定的16 bytes,存储状态在32位平台中占用32或者64 bytes,在64位平台中占用64 bytes。1m的共享内存空间可以保存大约3.2万个32位的状态,1.6万个64位的状态
limit_conn: 指定一块已经设定的共享内存空间(例如name为ops的空间),以及每个给定键值的最大连接数
上边的例子表示同一IP同一时间只允许10个连接
http {
limit_conn_zone $binary_remote_addr zone=ops:10m;
server {
listen 80;
server_name ops-coffee.cn;
root /home/project/webapp;
index index.html;
location / {
limit_conn ops 10;
}
access_log /tmp/nginx_access.log main;
}
}
limit_conn_zone: 设定保存各个键(例如$binary_remote_addr)状态的共享内存空间的参数,zone=空间名字:大小
大小的计算与变量有关,例如$binary_remote_addr变量的大小对于记录IPV4地址是固定的4 bytes,而记录IPV6地址时固定的16 bytes,存储状态在32位平台中占用32或者64 bytes,在64位平台中占用64 bytes。1m的共享内存空间可以保存大约3.2万个32位的状态,1.6万个64位的状态
limit_conn: 指定一块已经设定的共享内存空间(例如name为ops的空间),以及每个给定键值的最大连接数
上边的例子表示同一IP同一时间只允许10个连接
发布于:2年前 (2023-01-11) IP属地:四川省
我来回答
您需要 登录 后回答此问题!