http://www.ttlsa.com/nginx/nginx-logic/

nginx的配置中不支持if条件的逻辑与&& 逻辑或|| 运算 ,而且不支持if的嵌套语法,否则会报下面的错误:nginx: [emerg] invalid condition。

我们可以用变量的方式来间接实现。

要实现的语句:

if ($arg_unitid = 42012 && $uri ~/thumb/){ echo "www.ttlsa.com"; }

1

2

3

if ($arg_unitid = 42012 && $uri ~/thumb/){

echo "www.ttlsa.com";

}

如果按照这样来配置,就会报nginx: [emerg] invalid condition错误。

可以这么来实现,如下所示:

set $flag 0; if ($uri ~ ^/thumb/[0-9]+_160.jpg$){ set $flag "${flag}1"; } if ($arg_unitid = 42012){ set $flag "${flag}1"; } if ($flag = "011"){ echo "www.ttlsa.com"; }

1

2

3

4

5

6

7

8

9

10

set $flag 0;

if ($uri ~ ^/thumb/[0-9]+_160.jpg$){

set $flag "${flag}1";

}

if ($arg_unitid = 42012){

set $flag "${flag}1";

}

if ($flag = "011"){

echo "www.ttlsa.com";

}

转载于:https://blog.51cto.com/riverxyz/1870988

nginx 逻辑运算相关推荐

  1. nginx教程全集汇总(ttlsa出品)

    为什么80%的码农都做不了架构师?>>>    nginx教程写了一段时间,无意中发现,nginx相关文章已经达到了近100篇了.觉得很有必要汇总到一起,它是我们运维生存时间的一片心 ...

  2. nginx汇总(z)

    Nginx相关文章 Nginx基础 1.  nginx安装 2.  nginx 编译参数详解 3.  nginx安装配置+清缓存模块安装 4.  nginx+PHP 5.5 5.  nginx配置虚拟 ...

  3. nginx系列:nginx反向缓存代理详解

    小生博客:http://xsboke.blog.51cto.com 如果有疑问,请点击此处,然后发表评论交流,作者会及时回复. -------谢谢您的参考,如有疑问,欢迎交流 一. 代理和nginx相 ...

  4. 关于nginx/lighttpd epoll高并发以及apache为何不采用epoll的的疑惑 不指定

    关于nginx/lighttpd epoll高并发以及apache为何不采用epoll的的疑惑 - 向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 - ...

  5. nginx 网络模型,cpu亲和等优点

    nginx优点 1.IO多路复用epoll IO多路复用:多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,这里的"复用" 指的是复用同一个线程 epoll IO多路复用的 ...

  6. html if语句多条件,nginx if多条件判断的实现

    if判断本身不支持多条件判断,用不了 && 或者|| 这种逻辑运算,而且if也不支持嵌套. 可以通过set变量来迂回实现. 比如这里我要实现访问a.rootop.org跳转到匹配子域名 ...

  7. Nginx 根据手机电脑进行不同跳转

    有时候我们想对来自不同平台对同一页面的访问进行处理.比如访问 https://www.iteblog.com/test.html 页面,如果是电脑的浏览器访问,直接不处理:但是如果是手机的浏览器访问这 ...

  8. nginx使用lua实战

    目录 一.介绍 二.安装 1.apt安装 2.测试hello world 3.命令模式 三.lua语法 1.数据类型 2.变量 3.拼接字符串.. 4.循环 5.函数 6.条件控制 四.库模块 1.c ...

  9. nginx配置http、https访问,nginx指定ssl证书,阿里云腾讯云华为云设置nginx https安全访问

    nginx配置http.https访问 要设置https访问需要从对应的云厂商申请证书,并下载Nginx证书到服务器. 我这里从阿里云申请了免费的域名证书,然后将证书放置在服务器的/etc/ssl/. ...

  10. Web项目使用nginx实现代理端口访问,看这篇就够了

    在搭建服务器的时候,项目部署在tomcat上,要访问项目,则需要加上端口号,如何隐藏端口号来访问呢,这就用到了nginx. nginx可以在docker上安装,也可以在linux上安装,这里我建议使用 ...

最新文章

  1. Spark学习之Spark RDD算子
  2. STM32F 103C8T6开发板 点亮LED灯
  3. lucene源码分析(6)Query分析
  4. UDP socket编程中使用connect
  5. Visual Studio 即时窗口实用技巧
  6. golang 切片slice使用总结(动态数组、cap与len区别)
  7. SQLServer无法使用特殊主体'sa'的解决
  8. 混合云存储:大数据应用的上云之道
  9. textCNN和lightGBM模型对景区口碑评价进行情感分析
  10. 227.基本计算器II
  11. easyclick联众打码
  12. C#—— 身份证验证方法
  13. Qt制作透明背景图片与裁剪图片
  14. 计算机 网络发现不了电脑,电脑搜不到无线网络怎么办
  15. IOI2017 Day1 Toy Train 题解
  16. 安装监控的地方没有WiFi,没有无线网络,如何实现远程监控?
  17. matlab gui设计入门与实战,matlab gui编程教程
  18. mount.nfs: mount system call failed问题解决
  19. Windows 检测PPT WPS 幻灯片播放并获取窗口句柄
  20. RT-thread应用讲解——FLASH分区

热门文章

  1. 怎样从 Ubuntu 12.10 升级到 Ubuntu 13.04
  2. 使用并行计算大幅提升递归算法效率
  3. WF4读书笔记(一):创建一个简单的工作流
  4. iPhone UI 元素大小
  5. 用 SQL 脚本读取Excel 中的sheet数量及名称
  6. 吴裕雄--天生自然C语言开发:作用域规则
  7. IMPORT MULTIPLE JS
  8. IOS中通知中心NSNotificationCenter应用总结
  9. [转]android:clipToPadding和android:clipChildren
  10. 【知识碎片】JavaScript篇