nginx 在 if 或 map 中将值从 1 动态变为 1000

nginx 在 if 或 map 中将值从 1 动态变为 1000

是否可以使用 NGINX 中的变量的动态值,无论是使用 if is evil 还是 Map ?

我需要的是如果 $variable 小于 1000 则返回 404!

也许是这样的:

if ($variable = 1 To 1000 ) {
return 404;
}

或者

if ($variable less than 1000 ) {
return 404;
}

或者也许使用地图?

map $variable $test {

    default                   0;
    "~1 TO 1000"             1;
}

答案1

使用iffor doing returns(只要它发生在任何location指令之外)根本不是什么坏事。

NGINX 不支持if ($variable < 1000)算术比较,但你可以用等效的正则表达式替换它。所以:

server {
    ...
    if ($variable ~ "^\d{1,3}(?:\.\d{1,5})?$") {
        return 404;
    }

有关所用正则表达式的解释,请参阅这里

相关内容