Nginx限制IP的连接和并发:
速率限制:limit_req_zone 限制单位时间内的请求数量
并发限制:limit_conn_zone 限制同一时间内连接数量
http{
#基于IP做连接限制,限制同一IP并发为1,下载速率为100k
limit_conn_zone $binary_remote_addr zone=addr:100k
#基于IP对下载速率做限制,限制每秒处理一个请求,并发超过5个的请求放入缓冲区
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
#binary_remote_addr 限制同一客户端IP地址
#zone=mylimit:10m 生成一个大小为10m,名字为zone的内存区域,用来存储访问的频次信息
# rate=1r/s 允许相同标识的客户端的访问频次为每秒1次
server{
location /getFile/{
limit_req zone=mylimit burst=5 nodelay;
#zone=mylimit 设置使用哪个配置区域来做限制,与上面的zone对应
#burst=5 设置一个大小为5的缓冲区,当大量请求进来时,超过访问频次的请求先放入缓冲区
#nodelay 超过访问凭此且缓冲区已满,直接返回503,若不进行该配置,则所有请求将进行排队等候
limit_conn addr 1;#限制同一IP并发为1
limit_rate 100k;#限制下载速率为100k
limit_rate_after 10m;#前10M不进行限速
}
}
}
基于IP做连接限制
在这里插入代码片