一、ngx_http_access_module模块简介
Nginx的ngx_http_access_module 模块可以封配置内的ip或者ip段
1 |
ngx_http_access_module模块,可实现基于ip的访问控制功能,用于限制对某些客户端地址的访问,其功能类似于路由器上的基础acl。ngx_http_access_module模块为默认安装模块,只有allow和deny两个命令,allow表示运行指定IP地址访问,deny表示拒绝指定IP地址访问资源。配置规则说明如下: |
- allow表示允许指定IP访问
- deny表示拒绝访问
- allow或者deny后面可以接IP也可以是IP地址段,格式示例192.168.0.0/24
- 匹配规则为从上到下逐一匹配
- 没有默认规则,如果是白名单制,需要在最后加上deny all;
- 地址黑名单和白名单可以配置在server模块内,也可以配置在指定资源路径下;
二. Nginx做黑白名单机制,主要是通过allow、deny配置项来实现:
1 2 |
allow xxx.xxx.xxx.xxx; # 允许指定的IP访问,可以用于实现白名单。 deny xxx.xxx.xxx.xxx; # 禁止指定的IP访问,可以用于实现黑名单。 |
1 |
要同时屏蔽/开放多个IP访问时,如果所有IP全部写在nginx.conf文件中定然是不显示的,这种方式比较冗余,那么可以新建两个文件BlockIP.conf、WhiteIP.conf: |
2.1 黑名单:BlockIP.conf
1 2 3 4 |
# --------黑名单:BlockIP.conf--------- deny 192.168.12.222; # 屏蔽192.168.12.222访问 deny 192.168.44.201; # 屏蔽192.168.44.201访问 deny 127.0.0.0/8; # 屏蔽127.0.0.1到127.255.255.254网段中的所有IP访问 |
2.2 白名单:WhiteIP.conf
1 2 3 4 5 |
# --------白名单:WhiteIP.conf--------- allow 192.168.12.222; # 允许192.177.12.222访问 allow 192.168.44.201; # 允许192.177.44.201访问 allow 127.4.0.0/16; # 允许127.4.0.1到127.4.255.254网段中的所有IP访问 deny all; # 除开上述IP外,其他IP全部禁止访问 |
2.3分别将要禁止/开放的IP添加到对应的文件后,可以再将这两个文件在nginx.conf中导入:
1 2 3 4 5 6 7 8 9 10 |
http{ # 屏蔽该文件中的所有IP include /soft/nginx/IP/BlocksIP.conf; server{ location xxx { # 某一系列接口只开放给白名单中的IP include /soft/nginx/IP/blockip.conf; } } } |
1 |
对于文件具体在哪儿导入,这个也并非随意的,如果要整站屏蔽/开放就在http中导入,如果只需要一个域名下屏蔽/开放就在sever中导入,如果只需要针对于某一系列接口屏蔽/开放IP,那么就在location中导入 |
Apache限制IP访问
1 2 |
https://www.cnblogs.com/yjken/p/3922148.html https://blog.csdn.net/csnewdn/article/details/54380499 |
- 本文固定链接: https://www.yoyoask.com/?p=10268
- 转载请注明: shooter 于 SHOOTER 发表