是否可以使用 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
使用if
for doing return
s(只要它发生在任何location
指令之外)根本不是什么坏事。
NGINX 不支持if ($variable < 1000)
算术比较,但你可以用等效的正则表达式替换它。所以:
server {
...
if ($variable ~ "^\d{1,3}(?:\.\d{1,5})?$") {
return 404;
}
有关所用正则表达式的解释,请参阅这里。