Nginx提供了多种方式来实现基于IP地址的访问控制,以下是几种常见的配置方法:
在Nginx配置文件中,可以使用allow
和deny
指令来控制IP访问:
location / {
# 允许特定IP
allow 192.168.1.1;
allow 192.168.1.2;
# 拒绝所有其他IP
deny all;
# 其他配置...
}
location /admin {
# 允许192.168.1.0/24网段
allow 192.168.1.0/24;
# 允许10.0.0.0/8网段
allow 10.0.0.0/8;
# 拒绝其他所有
deny all;
}
http {
# 定义IP分组
geo $limited {
default 1;
192.168.1.0/24 0;
10.0.0.0/8 0;
}
server {
location / {
# 如果$limited为1则拒绝访问
if ($limited) {
return 403;
}
# 其他配置...
}
}
}
http {
map $remote_addr $allowed_ip {
default 0;
192.168.1.1 1;
192.168.1.2 1;
10.0.0.0/8 1;
}
server {
location / {
if ($allowed_ip = 0) {
return 403;
}
# 其他配置...
}
}
}
server {
location /secure {
# 允许特定IP
allow 192.168.1.100;
# 拒绝特定IP
deny 203.0.113.5;
# 拒绝所有其他IP
deny all;
}
}
http
、server
或location
块中都可以使用这些指令geo
或map
模块以提高性能nginx -s reload
include
引入以上配置可以根据实际需求组合使用,实现灵活的IP访问控制策略。