nginx限制IP并发数量和时间段访问次数
有些资源重要的网站,喜欢收到一些莫名的攻击,接下来教大家如何防范,先给大家看一个被攻击的图。

可以看出,它在短时间内收到多次访问,正常客户不会这么频繁的,所以这个可能就是攻击了,教大家如何利用nginx阻止这部分人的访问。
限制某一段时间内同一ip访问数实例:
http{
...
#定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,
#以$binary_remote_addr 为key,限制平均每秒的请求为20个,
#1M能存储16000个状态,rete的值必须为整数,
#如果限制两秒钟一个请求,可以设置成30r/m
limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
...
server{
...
location {
...
#限制每ip每秒不超过20个请求,漏桶数burst为5
#brust的意思就是,如果第1秒、2,3,4秒请求为19个,
#第5秒的请求为25个是被允许的。
#但是如果你第1秒就25个请求,第2秒超过20的请求返回503错误。
#nodelay,如果不设置该选项,严格使用平均速率限制请求数,
#第1秒25个请求时,5个请求放到第2秒执行,
#设置nodelay,25个请求将在第1秒执行。
limit_req zone=allips burst=5 nodelay;
...
}
...
}
...
}
限制某IP并发连接数实例:
http{
...
#定义一个名为one的limit_zone,大小10M内存来存储session,
#以$binary_remote_addr 为key
#nginx 1.18以后用limit_conn_zone替换了limit_conn
#且只能放在http作用域
limit_conn_zone one $binary_remote_addr 10m;
...
server{
...
location {
...
limit_conn one 20; #连接数限制
#带宽限制,对单个连接限数,如果一个ip两个连接,就是500x2k
limit_rate 500k;
...
}
...
}
...
}
正在加载评论...
栏目列表
推荐阅读
- nginx配置websocket转发功能(ws转发)
- Nginx代理模式下,获取客户端ip为服务器内网ip
- nginx的location配置匹配指定多个目录
- nginx反向代理并隐藏客户端的ip(可解决weblogic受5个IP的限制)
- nginx的location配置匹配排除指定多个目录
- nginx缓存模块proxy_cache_path的用法
- Nginx基本配置文件详解与参数说明
- nginx反向代理时丢失端口的解决办法
- 在windows服务器环境下配置nginx服务开机自启动
- nginx配置访问密码,输入用户名和密码才能访问
- Nginx开启Gzip的配置详解
- nginx过滤带有反斜杠“\”的请求
- nginx屏蔽HEAD,PUT,GET,POST,UPDATA,DELETE等操作
- nginx防火墙中设置白名单IP(百度云加速白名单IP)
- Linux下载安装nginx的命令完整步骤图解