记录一下:基于nginx配置的封禁真实IP

Situation(背景)

服务器正在被使用

Task(任务)

封禁指定网段的IP

Action(行动)

1:方法1:使用nginx 自带的deny 和 allow 来实现

由于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中添加就好。

Result(结果)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值