当前位置: 首页 > 编程笔记 >

Nginx中IF、AND、OR语句用法实例

浦德义
2023-03-14
本文向大家介绍Nginx中IF、AND、OR语句用法实例,包括了Nginx中IF、AND、OR语句用法实例的使用技巧和注意事项,需要的朋友参考一下

在上一篇文章:《Nginx if语句加正则表达式实现字符串截断》中, 我们介绍过了使用if来进行截断字符串的用法, 这次我们来了解下if的逻辑用法:
什么是逻辑用法呢, 就程序中的and、or关系, 就叫做逻辑了.

NGINX支持if的 and 与 or 或者 && 与 || 吗?

答案是No.
当你尝试这样配置, 重载nginx时, nginx会报出错误


    location = /test/ {

        default_type text/html;

        set $b 0;

        if ( $remote_addr != '' && $http_x_forwarded_for != '' ){

            set $b '1';

        }

        echo $b;

    }

[root@test-vm ~]# /usr/local/nginx/sbin/nginx -t

nginx: [emerg] invalid condition "$remote_addr" in /usr/local/nginx/conf/nginx.conf:60 configuration file /usr/local/nginx/conf/nginx.conf test failed


那么我们应该怎样来实现and 和or的逻辑关系呢?

    location = /test_and/ {

        default_type text/html;

        set $a 0;

        set $b 0;

        if ( $remote_addr != '' ){

            set $a 1;

        }

        if ( $http_x_forwarded_for != '' ){

            set $a 1$a;

        }

        if ( $a = 11 ){

            set $b 1;

        }

        echo $b;

    }

    location = /test_or/ {

        default_type text/html;

        set $a 0;

        set $b 0;

        if ( $remote_addr != '' ){

            set $a 1;

        }

        if ( $http_x_forwarded_for != '' ){

            set $a 1;

        }

        if ( $a = 1 ){

            set $b 1;

        }

        echo $b;

    }

 类似资料:
  • 问题内容: 我有以下代码: 在哪里。 如果第一个陈述为真会怎样? Java还会检查第二条语句吗?因为为了使第一条语句为真,所以HashMap不应包含给定的键,因此如果选中了第二条语句,则将获得。 简单来说,如果我们有以下代码 Java将在第一种情况下检查b是否a为false,a在第二种情况下是否为true? 问题答案: 不会被评估。这非常有用。例如,如果你需要测试String是否为null或为空,

  • 问题内容: 在Python中使用IF语句时,必须执行以下操作才能使“层叠”正常工作。 检查“等于”时,是否有办法使Python接受多个值?例如, 问题答案: if job in (“mechanic”, “tech”): print “awesome” elif job in (“tool”, “rock”): print “dolt” 括号中的值是一个元组。该运营商检查,看是否右手柄元组内的某处

  • 本文向大家介绍Nginx中IF语句实现数学比较功能,包括了Nginx中IF语句实现数学比较功能的使用技巧和注意事项,需要的朋友参考一下 nginx的if支持=、!= 逻辑比较, 但不支持if中 <、<、>=、<= 比较. 本示例使用了set-misc-nginx-module 上面的配置, 在启动nginx时会报错误的. 即然不支持,那有没有办法小小地弥补下呢? 测试10次: 附:NGINX竟然不

  • 我正在使用我的Symfony项目中的getter和setter。在更改其他字段之前,我必须使用语句检查状态字段是否没有特定的值。 代码: 我还使用运算符定义了常量。我在想有没有比这更优雅的解决方案。也许函数,但不知道它能用在这场比赛中吗?

  • 所以程序应该是:-获取用户的输入,直到用户键入“n或N”以显示停止的标志-当用户键入“n或N”时,程序正数和负数和。 还有我得到的 这个错误信息,我不知道是什么问题。提前谢谢你!

  • 问题内容: 是否存在OR sqlite语句?我一直在尝试使用google,但是google似乎正在过滤掉 OR 。 例如,如果我想在此表中找到某人(人) 如果名字叫猫王或理查德,我的查询是什么? 我已经尝试过类似的东西,但是总是返回 Eric Sc​​hmidt (我想要的东西正好相反)! 我也尝试过,但是返回表中的 所有 行! 我正在Ubuntu 10.10上使用Python 2.6 sqlit