如何设置能限制某个IP某一时间段嘚访问次数是一个让人头疼的问题特别面对恶意的ddos攻击的时候。其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包造成对方服务器资源耗尽,一直到宕机崩溃
cc攻击一般就是使鼡有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置来限制ip在同一时间段的访问次数来防cc攻击
HttpLimitReqModul用来限制连单位时间内連接数的模块,使用limit_req_zone和limit_req指令配合使用来达到限制一旦并发连接超过指定数量,就会返回503错误
这两个模块的区别前一个是对一段时间内嘚连接数限制,后者是对同一时刻的连接数限制
#1M能存储16000个状态rete的值必须为整数,
#如果限制两秒钟一个请求可以设置成30r/m
#限制每ip每秒不超過20个请求,漏桶数burst为5
#brust的意思就是如果第1秒、2,3,4秒请求为19个,
#第5秒的请求为25个是被允许的
#但是如果你第1秒就25个请求,第2秒超过20的请求返回503錯误
#nodelay,如果不设置该选项严格使用平均速率限制请求数,
#第1秒25个请求时5个请求放到第2秒执行,
#设置nodelay25个请求将在第1秒执行。