Nginx 拒绝时返回 `444`

Nginx 拒绝时返回 `444`

我有一个Nginx例子,其中我只想允许特定的 IP 范围:

allow 192.168.0.0/16;
deny all;

这工作正常,但是当被拒绝时,403会返回。

我没有拒绝 IP 来确认我有一个 Web 服务器。但是我可以返回444,也就是丢弃数据包吗?

答案1

实际上,您可以使用 geo 指令,也可以使用 if 和 return 指令来实现您的目的。以下是您需要使用的配置:

http{
    ...
    geo $remote_addr $allowed_trafic {
        default false;
        192.168.0.0/16 true;
    }
}
server {
    ...
    if ( $allowed_trafic = 'false'){
        return 444;
    }
    ...
}

希望这对你有帮助。谢谢。

答案2

你可以尝试这个:

  1. 创建文件“ip.conf”,然后包含到“nginx.conf”
  2. “ip.conf” 看起来应该是这样的:
geo $bad_ip {
    192.168.0.0/16;
    10.0.0.0/16;
    default 1;
}
  1. “app.conf”文件应如下所示:
location / {
        if ($bad_ip) {
            return 444;
        }
        proxy_pass http://app/;
}


相关内容