NGINX - 有条件地允许或拒绝 IP

chr*_*ris 1 nginx

是否可以在 NGINX 中有条件地允许或拒绝 IP?这是不允许的。

if($example){
  deny all;
}

if ($example2){
  allow all;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

您可以通过使用 geo 模块来做到这一点。这将只允许 ip 1.1.1.1 和 2.2.2.2 访问端点。您可以颠倒逻辑以允许所有 ips 并仅拒绝特定的几个。

geo $trusted_user {
    default 0;
    1.1.1.1 1;
    2.2.2.2 1;
}

server
{
    if ( $trusted_user ~ 0 ) { return 444; }
}
Run Code Online (Sandbox Code Playgroud)