设置 Nginx 的请求黑名单,可以使用 Nginx 的 deny
指令来拒绝特定 IP 地址或地址段的请求。以下是一个简单的配置示例,演示如何设置请求黑名单:
# 在 http 块中定义黑名单
http {
# 定义一个名为 blacklist 的 key 来存储黑名单
geo $blacklist {
default 0; # 默认为不在黑名单中
10.1.1.0/24 1; # 把10.1.1.0/24网段加入黑名单
192.168.0.100 1; # 把单个IP地址加入黑名单
}
# 定义一个名为 blocked 的 location 来拒绝黑名单中的请求
server {
location / {
# 如果客户端IP在黑名单中,返回403 Forbidden
if ($blacklist) {
return 403;
}
# 其他情况下,继续正常处理请求
...
}
}
}
配置解释:
- 使用
geo
指令定义了一个名为$blacklist
的变量,用来存储黑名单信息。 - 在
server
块中的location /
中,使用if
指令检查客户端的 IP 地址是否在黑名单中,如果在黑名单中,则返回 403 Forbidden,拒绝请求。 - 可以根据需要添加或修改黑名单列表,例如通过 IP 地址、CIDR 网段等方式指定要拒绝的请求来源。
注意,使用 if
指令会增加配置的复杂性,而且可能会影响性能。在实际使用中,尽量避免在 Nginx 配置中过多地使用 if
指令。