nginx黑名单和白名单
nginx黑名单和白名单
Hokori在解决禁止ip直接访问网站的问题的时候,受到群友启发,发现还有个可以禁止ip直接访问网站的办法,那就是网站黑白名单。
Nginx配置黑名单
创建黑名单其实很简单,只需要使用allow或者deny关键字就可以了。
- 其中,allow关键字用来允许访问某ip,其中
allow all
,表示允许所有的ip - 其中,deny关键字用来拒绝访问某ip,其中
deny all
,表示拒绝所有的ip进行访问
1 | server{ |
当然如上我所需要的,是禁止通过IP访问某个网站,那么只要使用如下代码所示:
1 | server{ |
而要做出网站黑名单,就有可能要屏蔽一堆ip,但是如果将其放在nginx.conf文件夹下,既不美观,也不利于管理,因此需要单独写出一个blacklist.conf,然后在nginx.conf中引用它。
- blacklist.conf
1 | allow all; |
- nginx.conf
1 | server{ |
Nginx配置白名单
配置白名单和配置黑名单其实差不多,只是把allow和deny反过来罢了,因此这里不细写了,直接贴一个代码
- whitelist.conf
1 | deny all; # 禁止访问所有ip |
- nginx.conf
1 | server{ |
黑名单作用范围
HTTP范围黑名单
总入口黑名单
1 | http{ |
如上所示,在http里配置的则是http范围的黑名单了。
SERVER范围黑名单
分域名黑名单
1 | http{ |
如上所示,在server配置的是server范围的黑名单。
Location范围黑名单
分域名黑名单
1 | http{ |
如上,这是location范围的黑名单。
从上面不同范围的黑名单可以看出来,不同的范围对应的效果不一样。在Http范围的黑名单中,访问该服务器的所有服务都要被黑名单过滤。在Server范围黑名单中,只有访问该http服务器的当前server服务时,才会被黑名单过滤。而Location范围呢,自然便是针对当前转发才会被黑名单过滤了。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果