1.简介
目的是:限制连接数核心目的是防止恶意请求脚本来刷服务器
官方文档:http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
2. 基于ip限制
2.1. 每个ip限制1个连接数
nginx配置:
ab测试:
1个连接100次测试
sudo ab -n 100 -c 1 -t 10 http://10.0.22.120:1180/limit
查看日志:
其他都是:
2023/01/10 17:30:53 [error] 215#215: *29203 limiting connections by zone "perip_conn", client: 10.0.22.112, server: localhost, request: "GET /limit HTTP/1.0", host: "10.0.22.120:1180"
同一个连接1秒同时只能请求一次
2.2. 每个ip限制6个连接但是1个并发客户端(每个请求0.5s)
nginx配置:
ab测试:
1个连接1秒内发起10000次测试
sudo ab -n 10000 -c 1 -t 10 http://10.0.22.120:1180/limit
查看日志:
可以发现每次请求间隔都是0.5秒,也就是同时只有一个客户端可以请求
2.3. 每个server限制6个连接10个并发客户端(每个请求1s)
nginx配置:
ab测试:
10个连接10000次测试持续20秒
sudo ab -n 10000 -c 10 -t 20 http://10.0.22.120:1180/limit
查看日志:
可以发现非常工整,一秒之内最多只能有6个同求同时存在,只有请求结束了才会开始新的请求。如果设置为一次请求0.5秒,那么1秒就会有达到12个左右,因为请求结束以后,其他的请求被允许的。
这是同时存在请求数的概念。
标签:10,ab,http,请求,10.0,连接数,limit,openresty From: https://www.cnblogs.com/zhanchenjin/p/17045694.html