有时我们需要针对屏蔽某些恶意的IP访问我们的网站,或者限制仅仅某些白名单IP才能访问我们的网站。这时候我们就可以在Nginx中通过简单的配置来达到目的。
相关配置语句
(1)屏蔽单个ip访问
1 2 | # 格式: deny ip; deny 123.68.23.5; |
(2)允许单个ip访问
1 2 | # 格式: allow ip; allow 123.68.25.6; |
(3)屏蔽所有ip访问
1 | deny all; |
(4)允许所有ip访问
1 | allow all; |
(5)屏蔽ip段访问
1 2 3 | # deny ip/mask # 屏蔽172.12.62.0到172.45.62.255访问的命令 deny 172.12.62.0/24; |
(6)允许ip段访问
1 2 3 | # allow ip/mask # 屏蔽172.102.0.0到172.102.255.255访问的命令 allow 172.102.0.0/16; |
配置说明
(1)可新建一个配置文件,如blockip.conf
。在其中编写相关的ip限制语句,然后在nginx.conf
中加入如下配置:注意配置到某个server里面噢
1 2 | # 配置ip限制策略 include blockip.conf; |
(2)Nginx会根据配置文件中的语句,从上至下依次判断。因此,写在前面的语句可能会屏蔽后续的语句
除部分ip白名单外,屏蔽所有ip的错误示例
1 2 3 4 | deny all; # 该语句已经禁止所有ip的访问,后续的配置不会生效 allow 123.45.25.6; allow 123.68.52.125; allow 123.125.25.106; |
正确示例
1 2 3 4 5 6 | # 允许部分ip访问 allow 123.45.25.6; allow 123.68.52.125; allow 123.125.25.106; # 禁止其余ip访问 deny all; |
(3)屏蔽策略文件可以放在http
, server
, location
, limit_except
语句块中,可以根据需要合理的配置。
http
: Nginx中所有服务起效server
: 指定的服务起效location
: 满足的location下起效limit_except
: 指定的http方法谓词起效