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