关于Nginx ip白名单怎么设置配置的问题

控制规则按照声明的顺序进行检查首条匹配IP的访问规则将被启用。 location / {

注意规则的匹配顺序如果你使用过apache你可能会认为你可以随意控制规则的顺序并且他们能够正常的工莋,但实际上不行

下面的这个例子将拒绝掉所有的连接:

  #这些指令不会被启用,因为到达的连接在第一条已经被拒绝

}
 
 
 
 
 
 

geo指令定义一个白名单$whiteiplist, 默认值为1, 所囿都受限制 如果客户端IP与白名单列出的IP相匹配,则$whiteiplist值为0也就是不受限制

map指令是将$whiteiplist值为1的,也就是受限制的IP映射为客户端IP。将$whiteiplist值为0的也就是白名单IP,映射为空的字符串

以上这篇Nginx通过geo模块设置白名单的例子就是小编分享给大家的全部内容了,希望能给大家一个参考吔希望大家多多支持脚本之家。

}

本文主要介绍了有关使用Nginx防御CC***的┅些配置CC***针对的是服务器上面的内存和CPU资源,因此通常会找到一些比较高消耗的接口例如search.php之类的需要大量sql查询的接口。因此明白了這一点,我们就很好防御了主要是针对单个ip地址的连接数和请求php文件的密度来控制的。

我们主要用到的是Nginx中提供的两个limit模块:

首先这两個模块是支持白名单的就是可能有某些IP地址,我们是不需要进行限制的比如可能会是搜索引擎啦什么的或者自己的IP,因此需要设置一個白名单,不需要的可跳过本步具体方法:

在HTTP段中插入如下格式内容,声明白名单IP

geo指令定义了一个白名单$limited变量默认值为1,如果客户端IP在仩面的范围内$limited的值为0。

然后紧跟在上面内容后使用map指令映射搜索引擎客户端的ip为空串如果不是白名单IP就显示本身真实的IP,这样搜索引擎iIP就不能存到limit模块的内存session中所以不会限制白名单的IP访问。

访问频率限制使用到的是ngx_http_limit_req_module需要在两个地方配置,首先在HTTP段中声明好这个模塊一些参数,如果有设置白名单设置如下

如果没有配置白名单,所有来访IP都会限制配置如下

解释一下上面的参数,第一个代表的是需偠限制的ip群这个很好理解,第二个zone=one表示这个limit_zone的名字叫做one后面的使用中可以用这个one来进行指代,后面的15m代表为这个zone分配10m的内存,1m可以保存16000的$binary_remote_addr最后一个是频率,如果要按秒来算可以设置20r/s这样

最后是配置到Nginx的php的解析段

指定了使用名字为one的zone,然后缓冲队列为5无延迟,如果不设置无延迟访问会卡住。

访问连接限制使用到的是ngx_http_limit_conn_module也是需要在两个地方配置,首先在HTTP段中声明好这个模块一些参数,如果有设置白名单设置如下

如果没有配置白名单,所有来访IP都会限制配置如下

参数的意思跟上面的差不多也就不多解释了。

后面的就是在server段中進行设置了可以具体到某个目录什么的了

}

我要回帖

更多关于 IP白名单 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信