状況
サーバーは使用中です
タスク
指定したネットワークセグメントのIPをブロックする
アクション
1: 方法 1: nginx 独自の拒否を使用して実装を許可する
nginx は、実際の IP ではなく、サーバーに到着する前にプロキシの IP をブロックしたため、失敗しました。
2: 方法 2: 構成を追加する
http {
...
geo $ip_addr $real_ip {
default "";
219.248.141.0/24 "blocked";
}
# 首先定义了一个名为 $ip_addr 的变量,它将从客户端请求中提取出 IP 地址;
# 然后定义了一个名为 $real_ip 的变量,它将根据 $ip_addr 的值获取到对应的真实 IP 地址;
# 接着通过 geo 块对真实 IP 进行判断,如果属于 219.248.141.0/24 网段,则将其设置为字符串 "blocked",否则将其设置为默认值 "";
# 最后使用 map 块将 $real_ip 映射到一个变量 $block,如果 $real_ip 被设置为 "blocked",则将 $block 设置为 1,否则设置为 0。
map $real_ip $block {
default 0;
"blocked" 1;
}
# 在 Nginx 的主配置块中定义了一个 server 块,在这里可以通过 if 指令判断是否需要阻止访问,如果 $block 被设置为 1,则返回 HTTP 403 错误。
server {
...
if ($block) {
return 403;
}
...
}
...
}
後で禁止された IP を追加する必要がある場合は、それを geo に追加するだけです。