摘要:
nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置来限制ip在同一时间段的访问次数来防cc攻击
HttpLimitReqModul用来限制连单位时间内连接数的模块,使用limit_req_zone和limit_req指令配合使用来达到限制。一旦并发连接超过指定数量,就会返回503错误。
HttpLimitConnModul用来限制单个ip的并发连接数,使用limit_zone和limit_conn指令
注:两个模块的区别前一个是对一段时间内的连接数限制,后者是对同一时刻的连接数限制
HttpLimitReqModul 限制某一段时间内同一ip访问数实例
在http作用域下配置limit_req_zone指令,如下:
1 | http{ |
HttpLimitZoneModule 限制并发连接数实例
在http作用域下配置limit_zone指令,limit_zone只能定义在http作用域,limit_conn可以定义在http server location作用域.如下
1 | http{ |
nginx白名单设置
上面默认配置对多有的ip都有限制,有些时候我们不希望对搜索引擎的蜘蛛或者自己测试ip进行限制,
对于特定的白名单ip我们可以借助geo指令实现,如下:
geo指令定义了一个白名单$limited变量,默认值为1,如果客户端ip在上面的范围内,$limited的值为0
1 | http{ |