Nginx禁止ip访问或IP网段访问方法
转载:https://www.cnblogs.com/already/p/6244295.html
Nginx禁止ip访问可以防止指定IP访问我们的网站,本例子可以实现是防止单IP访问或IP网段访问了,非常的有用我们一起来看看吧。
常用的linux做法
iptables参考规则
| 代码如下 | 复制代码 |
|
iptables -I INPUT -p tcp –dport 80 -m –mac-soruce$MAC -j DROP 基于mac地址的 |
|
方法一,
首先建立下面的配置文件放在nginx的conf目录下面,命名为blocksip.conf:
加入以下代码:
| 代码如下 | 复制代码 |
|
#屏蔽soso蜘蛛IP |
|
保存一下。
在nginx的配置文件nginx.conf中加入:include blocksip.conf;
重启一下nginx的服务:/usr/local/nginx/sbin/nginx -s reload 就可以生效了。
方法二,利用nginx的ngx_http_access_module
ngx_http_access_module 模块可以用来设置允许/禁止哪些ip或ip段访问,可以设置一个文件内容类似下面的:
| 代码如下 | 复制代码 |
| deny IP; deny subnet; allow IP; allow subnet; # block all ips deny all; # allow all ips allow all; |
|
其中网段的写法是这样的:192.168.1.0/24这样的形式。
然后编辑nginx.conf,加入一行:
include blockips.conf;
这样设置以后,该服务器上所有的网站都会按照这个设置来拒绝或允许访问。如果想只针对某个网站,可以在具体的网站的配置中加入:
| 代码如下 | 复制代码 |
| location / { allow 192.168.0.0/24; deny all; } |
|
这样就只允许192.168.0.0网段的ip访问,其他ip访问会返回一个403错误。
还可以自定义一个403错误的页面,可以在/usr/local/nginx/html下新建个error403.html文件,里面按照html的语法写个文档,写上一些说明文字。
然后编辑nginx.conf,加入:
| 代码如下 | 复制代码 |
| error_page 403 /error403.html; location = /error403.html { root html; } |
|
作者:运维·拖拉斯基
作者水平很低, 如果有错误及时指出, 如果你觉得本文写的好请点一波赞~(≧▽≦)/~
出处:https://www.cnblogs.com/-abm/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
浙公网安备 33010602011771号