当前位置:首页 > nginx > 正文

nginx怎么不停服更新

  • nginx
  • 2024-05-20 08:02:12
  • 647

1、nginx怎么限制客户端访问频次与访问次数
如何限制一定时间内某个IP的访问次数是一个令人头疼的问题,尤其是在面临恶意DDoS攻击时。 其中CC(ChallengeCollapsar)攻击是DDOS(分布式拒绝服务)的一种,也是一种流行的网站攻击方式。 攻击者通过代理服务器或肉鸡不断向受害服务器发送大量数据包,造成服务器损坏。 对方服务器资源耗尽直至崩溃。
CC攻击往往利用有限数量的IP定期向服务器发送数据来达到攻击目的。 nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置限制同一时间段内的IP访问数量,防止CC攻击。 。
HttpLimitReqModul是一个用于限制单位时间内连接数的模块。 结合使用limit_req_zone和limit_req命令来实现限制。 当并发连接数超过指定数量时,返回503错误。
HttpLimitConnModul用于限制某个IP的并发连接数,使用limit_zone和limit_conn指令
这两个模块的区别在于前者限制一段时间内的连接数,而后者则立即限制连接。 限制数量
文章目录
1HttpLimitReqModul限制同一IP在一定时间内访问的实例数量
2HttpLimitZoneModule限制并发连接实例数量
3nginx白名单设置
HttpLimitReqModul限制给定时间内同一IP访问的实例数量
http{
...
#定义limit_req_zone名为allipsto存储会话,大小为10M内存,
#使用$binary_remote_addr作为key,限制每秒平均请求数为20,
#1M可以存储16000个状态,rete的值必须是整数,
#如果限制是每两秒请求一次,可以设置为30r/m
limit_req_zone$binary_remote_addrzone=allips:10mrate=20r/s;
...
服务器{
...
位置{
...
#限制每个IP每秒不超过20个请求并突发泄漏组计数to5
#burst表示是否允许每秒、第2、3、4秒的前19个请求以及第5秒的25个请求。
#但是如果第一秒有25个请求,第二秒超过20个请求,则会返回503错误。
#nodelay,如果不设置该选项,将严格使用平均速率来限制请求数量,
#当第一秒有25个请求时,将在第1秒发出5个请求第二秒,
#设置nodelay,第一秒会发出25个请求。
limit_reqzone=allipsburst=5nodelay;
...
...
...
}