Nginx限制IP访问

有时候我们需要针对屏蔽某些恶意的 IP 访问我们的网站,或者限制仅仅某些白名单 IP 才能访问我们的网站。这时候我们就可以在 Nginx 中通过简单的配置来达到目的。

Nginx限制IP访问配置

屏蔽单个ip访问

# 格式: deny ip; deny 123.68.23.5;

允许单个ip访问

# 格式: allow ip; allow 123.68.25.6;

屏蔽所有ip访问

deny all;

允许所有ip访问

allow all;

屏蔽ip段访问

# deny ip/mask # 屏蔽172.12.62.0到172.45.62.255访问的命令 deny 172.12.62.0/24;

允许ip段访问

# allow ip/mask # 屏蔽172.102.0.0到172.102.255.255访问的命令 allow 172.102.0.0/16;

配置说明

  1. 可新建一个配置文件,如 blockip.conf。在其中编写相关的 ip 限制语句,然后在 nginx.conf 中加入如下配置:

    # 配置ip限制策略 include blockip.conf;
  2. nginx 会根据配置文件中的语句,从上至下依次判断。因此,写在前面的语句可能会屏蔽后续的语句。除部分 ip 白名单外,屏蔽所有 ip 的错误示例:

    deny all; # 该语句已经禁止所有ip的访问,后续的配置不会生效 allow 123.45.25.6; allow 123.68.52.125; allow 123.125.25.106;

    正确示例:

    # 允许部分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 方法谓词起效