0°

Nginx 之 ngx_http_access_module 访问控制模块

Nginx通过 ngx_http_access_module 模块允许限制对某些客户端地址的访问
限制源地址访问的功能

  1. 设置IP白名单,只允许写入到白名单的IP地址访问Nginx
  2. 设置IP黑名单,写入黑名单的IP都不允许访问Nginx

ngx_http_access_module模块官方文档:http://nginx.org/en/docs/http/ngx_http_access_module.html

限制源地址需要注意

  1. 如果源地址是动态公网地址或者拨号网络,不建议使用IP限制
  2. 如果Nginx前面放的有 F5 或者 LVS 等代理服务器,可以让F5或者LVS服务器将客户端真实地址与请求一同转发至Nginx后再做IP限制

参数介绍

#allow 参数语法
Syntax: allow address | all;
Default:    —
Context:    http, server, location, limit_except

#allow 参数语法
Syntax: deny address | all;
Default:    —
Context:    http, server, location, limit_except

#案例
location / {
    deny  192.168.1.1;                      #拒绝192.168.1.1主机访问
    allow 192.168.1.0/24;                   #允许192.168.1.0/24网段访问,但是排除掉了此网段中的192.168.1.1主机
    allow 10.1.1.0/16;                      #允许10.1.1.0/16网段访问
    allow 2001:0db8::/32;                   #允许ipv6地址 2001:0db8::/32 访问
    deny  all;                              #其它所有地址都拒绝
}

Nginx服务器上的所有虚拟主机限制源地址

将限制加到http中对所有server生效
假如我们nginx服务器上有三台虚拟主机,这三台虚拟主机都需要禁止67.203.239.191地址和192.168.23.0/24网段,其它都允许访问。

vim /usr/local/nginx/conf/nginx.conf        #可以在主配置文件http配置段中加入以下
    deny 67.203.239.191;
    deny 192.168.23.0/24;
    allow all;

或者在nginx.conf配置文件中通过 include 参数来指定位置,如下:

#在nginx.conf http 配置段中加入  include /usr/local/nginx/conf/access_limit.conf;

#创建此配置文件
vim /usr/local/nginx/conf/access_limit.conf
deny 67.203.239.191;
deny 192.168.23.0/24;
allow all;

完成操作后,重启nginx即可

Nginx服务器上的单个虚拟主机限制源地址

将限制加入server中只对当前server生效
假如我们nginx服务器上面还是有三台虚拟主机,我们想让 k8sops.cn 这台虚拟主机只能允许192.168.31.0/24网段访问,拒绝其它所有地址。
找到本地虚拟主机的配置文件,加入以下内容;

server {
        listen  80;
        server_name k8sops.cn;
        
        allow 192.168.31.0/24;    
        deny all;
        
        location  / {
            root html;
            index index.html;
        }
        
        location /k8sops {
            alias html;
            index index.html;
        }
}

Nginx服务器上的单个location限制源地址

将限制加入location中只对当前location生效
nginx服务器需要添加一个连接,只允许本地访问,拒绝其它所有地址

        location /ngx_status {
            stub_status on;
            allow 127.0.0.1;
            deny all;
        }






「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论