zoukankan      html  css  js  c++  java
  • NGINX的奇淫技巧 —— 6. IF实现数学比较功能 (1)

    •  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吧~

  • 相关阅读:
    13 数据库主从
    12 数据备份
    11 锁机制
    12 日志
    10 索引(二)
    09 索引
    update kernel 3.10-3.12
    haproxy para config
    mysql slave to master
    storage disk
  • 原文地址:https://www.cnblogs.com/archoncap/p/5045384.html
Copyright © 2011-2022 走看看