Nginx中IF语句实现数学比较功能

 更新时间:2015年02月07日 20:24:41   投稿:junjie  
这篇文章主要介绍了Nginx中IF语句实现数学比较功能,即在Nginx中用if判断数字大小,类似编程语言中的逻辑比较,需要的朋友可以参考下

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
...

附:NGINX竟然不支持这样的写法....
复制代码 代码如下:

location = /test/ {
    default_type html;
    set_random $a 0 9;     #$a 随机 从0-9取
    set_random $b 0 9;     #$b 随机 从0-9取
    set $ereg "[0-$b]";
    if ( $a ~ $ereg ){     #$a 如果 正则匹配 0-$b
        echo 'a: $a is lte b: $b  ereg: $ereg';
    }
    if ( $a !~ $ereg ){     #$a 如果 正则不匹配 0-$b
        echo 'a: $a is gt b: $b  ereg: $ereg';
    }
}

求大牛来实现...

相关文章

  • Nginx同一个域名配置多个项目的实现方法

    Nginx同一个域名配置多个项目的实现方法

    这篇文章主要介绍了Nginx同一个域名配置多个项目的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Nginx的mirror指令示例配置

    Nginx的mirror指令示例配置

    这篇文章主要介绍了Nginx的mirror指令能干啥?mirror 指令提供的核心功能就是流量复制, 至于流量复制要用来干嘛,这个就各取所需了,需要的朋友可以参考下
    2022-05-05
  • Nginx四层负载均衡的配置指南

    Nginx四层负载均衡的配置指南

    当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃.为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力,这篇文章主要给大家介绍了关于Nginx四层负载均衡配置的相关资料,需要的朋友可以参考下
    2021-06-06
  • nginx查看配置文件的操作方法

    nginx查看配置文件的操作方法

    nginx的配置放在nginx.conf文件中,一般我们可以使用以下命令查看服务器中存在的nginx.conf文件,这篇文章主要介绍了nginx查看配置文件,需要的朋友可以参考下
    2024-02-02
  • 设置Nginx允许上传文件的大小的代码详解

    设置Nginx允许上传文件的大小的代码详解

    这篇文章主要给大家介绍了关于设置Nginx允许上传文件的大小的方法,文中通过示例代码介绍的非常详细,对大家学习Nginx有一定的参考学习价值,需要的朋友们下面来一起学习吧
    2024-01-01
  • 5分钟搞定Nginx安装的教程

    5分钟搞定Nginx安装的教程

    下面小编就为大家分享一篇5分钟搞定Nginx安装的教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • Nginx带宽控制(限速模块使用)

    Nginx带宽控制(限速模块使用)

    这篇文章主要介绍了Nginx带宽控制(限速模块使用),本文讲解了使用limit_rate和limit_rate_aft以及limit_conn实现带宽控制的例子,需要的朋友可以参考下
    2015-03-03
  • Nginx捕获并自定义proxy_pass返回的错误问题

    Nginx捕获并自定义proxy_pass返回的错误问题

    这篇文章主要介绍了Nginx捕获并自定义proxy_pass返回的错误问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • nginx 405 not allowed问题三种解决方法

    nginx 405 not allowed问题三种解决方法

    这篇文章主要给大家介绍了关于nginx 405 not allowed问题三种解决方法的相关资料,当您遇到"405 Not Allowed"错误时,通常表示服务器不允许您使用所请求的HTTP方法,以下是一些可能的解决方法,需要的朋友可以参考下
    2023-08-08
  • 详解Nginx反向代理到Tomcat服务器

    详解Nginx反向代理到Tomcat服务器

    本篇文章主要介绍了详解Nginx反向代理到Tomcat服务器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02

最新评论