Nginx控制IP(段)的访问策略配置

时间:2025-03-10 11:35:22

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。有着负载均衡、动静分离等强大的功能,而且还有众多三方插件来满足应用要求。这里重点介绍nginx实现IP地址的访问控制策略配置。

一、简要说明

Nginx配置访问IP可以修改文件,只需要在server中添加allow和deny的IP即可。

  1. allow 和 deny 指令在 ngx_http_access_module 模块中。

  1. 两个指令分别表示允许或禁止源 IP 访问,用于对源 IP 做访问控制。

  1. nginx 是按照自上而下的顺序进行匹配,匹配到一个就不往下继续了。

  1. 遇到 return 指令时 return 指令还是会生效;

  1. IP可以是一个或者多个,也可以是一个IP段

二、配置示例

2.1、示例1:1个IP

server {
    listen       80;
    server_name  localhost;
    allow all;
    deny 10.72.179.50;
    error_page   403  /;
}

其中all 表示允许所有;

上面这段的deny没有效果,因为【按照自上而下的顺序进行匹配,匹配到一个就不往下继续了

所以正确的配置方法为

server {
    listen       80;
    server_name  localhost;
    deny 10.72.179.50;
    allow all;
    error_page   403  /;
}

2.2、示例2:多个IP

server {
    listen       80;
    server_name  localhost;
    deny 10.72.179.50;
    deny 10.72.179.51;
    allow all;
    error_page   403  /;
}

2.3、示例3:IP地址段

server {
    listen       80;
    server_name  localhost;
    deny 10.72.179.0/24;
    allow all;
    error_page   403  /;
}

另外需要注意,该配置修改需要重启Nginx服务器才能生效。nginx -s reload