您的位置:首页 > 运维架构 > Nginx

NGINX的奇淫技巧 —— 6. IF实现数学比较功能 (1)

2015-12-14 15:30 633 查看

NGINX的奇淫技巧 —— 6. IF实现数学比较功能 (1)



ARGUS
1月13日 发布

推荐 0 推荐

收藏 3 收藏,839 浏览

nginx的if支持
=
!=
逻辑比较, 但不支持if中
<
<
>=
<=
比较.
本示例使用了set-misc-nginx-module

location = /test/ {
default_type html;
set_random $a 0 9;      #$a 随机 从0-9取
if ( $a <= 4 ){         #$a 如果 < 4 这是错误的写法
echo 'a: $a is lte 4';
}
if ( $a >= 5 ){         #$a 如果 > 5 这是错误的写法
echo 'a: $a is gte 5';
}
}

上面的配置, 在启动nginx时会报错误的.

即然不支持,那有没有办法小小地弥补下呢?

location = /test/ {
default_type html;
set_random $a 0 9;     #$a 随机 从0-9取
if ( $a ~ [0-4] ){     #$a 如果 正则匹配 0-4
echo 'a: $a is lte 4';
}
if ( $a ~ [5-9] ){     #$a 如果 正则匹配 5-9
echo 'a: $a is gte 5';
}
}

测试10次:

a: 8 is gte 5
a: 9 is gte 5
a: 2 is lte 4
a: 1 is lte 4
a: 8 is gte 5
a: 0 is lte 4
a: 9 is gte 5
a: 1 is lte 4
a: 4 is lte 4
a: 5 is gte 5
...

骚年, 速度加入A.R.G.U.S.网络安全小组, 跟老夫们一起学nginx吧~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: