Nginx实现IP黑白名单

时间:2025-03-04 12:39:38

Nginx做黑白名单机制,主要是通过allow、deny配置项来实现:

allow ; # 允许指定的IP访问,可以用于实现白名单。deny ; # 禁止指定的IP访问,可以用于实现黑名单。

要同时屏蔽/开放多个IP访问时,如果所有IP全部写在文件中定然是不显示的,这种方式比较冗余,那么可以新建两个文件、:

# --------黑名单:---------deny 192.177.12.222; # 屏蔽192.177.12.222访问deny 192.177.44.201; # 屏蔽192.177.44.201访问deny 127.0.0.0/8; # 屏蔽127.0.0.1到127.255.255.254网段中的所有IP访问
# --------白名单:---------allow 192.177.12.222; # 允许192.177.12.222访问allow 192.177.44.201; # 允许192.177.44.201访问allow 127.45.0.0/16; # 允许127.45.0.1到127.45.255.254网段中的所有IP访问deny all; # 除开上述IP外,其他IP全部禁止访问

分别将要禁止/开放的IP添加到对应的文件后,可以再将这两个文件在中导入:​​​​​​​

http{    # 屏蔽该文件中的所有IP    include /soft/nginx/IP/;  server{    location xxx {        # 某一系列接口只开放给白名单中的IP        include /soft/nginx/IP/;     } }}

对于文件具体在哪儿导入,这个也并非随意的,如果要整站屏蔽/开放就在http中导入,如果只需要一个域名下屏蔽/开放就在sever中导入,如果只需要针对于某一系列接口屏蔽/开放IP,那么就在location中导入

​​​​​​​