Nginx限制相同IP访问频率
在nginx配置中使用limit_req_zone
指令设置请求速率限制:
http {
...
limit_req_zone $binary_remote_addr zone=my_limit1:10m rate=10r/s;
...
}
limit_req_zone
: 限制请求速率指令。
$binary_remote_addr
: 请求的二进制远程地址,通常是客户端的IP地址。
zone=my_limit1:10m
: 定义名为my_limit1
的限制区域,存储关于请求速率的信息。10m
表示内存大小为10mb。
rate=10r/s
: 每秒10个请求。
应用配置到服务中:
server {
...
location / {
limit_req zone=my_limit burst=10 nodelay;
...
}
}
limit_req zone=my_limit burst=10 nodelay;
: 在这个location
中,使用了limit_req
指令,对请求速率进行了限制。zone=my_limit
: 引用配置my_limit
速率限制区域。burst=10
: 表示允许请求的瞬时爆发,最多允许同时处理10个请求。nodelay
: 不延迟请求,即不等待,直接应用速率限制。