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的命令完整步骤图解