当前位置: 首页 > news >正文

nginx set变量后lua无法改值

今天在使用lua修改nginx自定义变量的时候,发现死活更改不了,如下所示:

有问题的代码

            set $check "1";
            rewrite_by_lua_file 'conf/rundeck.lua';
            if ($check = "1"){
                echo "1 check $check";
                content_by_lua 'ngx.say("check is 1")';
            }
            if ($check = "2"){
                echo "2 check $check";
                content_by_lua 'ngx.say("check is 2")';
            }   

上面的逻辑很简单,就是说我设置一个check的变量为1,然后修改check这个变量值的逻辑在rundeck.lua这个lua脚本处理,奇葩的问题在此出现,我echo出来的check值是2,但是 if 判断条件里面 check永远为1,所以永远都走第一个if判断力,未解。

于是我稍作修改,运行逻辑就好了,如下所示:
无问题的代码

            set $check "";  #主要修改这里,把设置的变量为空
            rewrite_by_lua_file 'conf/rundeck.lua';
            if ($check = "1"){
                echo "1 check $check";
                content_by_lua 'ngx.say("check is 1")';
            }
            if ($check = "2"){
                echo "2 check $check";
                content_by_lua 'ngx.say("check is 2")';
            }   

只要把set $check 改为 "" 即可,check这个变量的值就会被lua给改动了。

相关文章:

  • RabbitMQ Performance Testing Tool 性能测试工具
  • Perl检查引用类型
  • 网络七层协议
  • django中获得当前域名
  • Java编程基础24——递归练习
  • E-HPC支持多队列管理和自动伸缩
  • 聊聊我的linux系统学习之路
  • Python3将ipa包中的文件按大小排序
  • 2018 php 面试
  • 【网络文摘】一位36岁程序员的困惑
  • rabbitMQ 常用命令
  • Benefits of encapsulation
  • 【附node操作实例】redis简明入门系列—字符串类型
  • [译] 尤雨溪:Vue 3.0 计划
  • 接口使用
  • 5、React组件事件详解
  • avalon2.2的VM生成过程
  • co.js - 让异步代码同步化
  • es的写入过程
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JDK9: 集成 Jshell 和 Maven 项目.
  • JS笔记四:作用域、变量(函数)提升
  • JS实现简单的MVC模式开发小游戏
  • mongodb--安装和初步使用教程
  • QQ浏览器x5内核的兼容性问题
  • vue自定义指令实现v-tap插件
  • 第2章 网络文档
  • 翻译--Thinking in React
  • 关于springcloud Gateway中的限流
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 汉诺塔算法
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 批量截取pdf文件
  • 强力优化Rancher k8s中国区的使用体验
  • 区块链技术特点之去中心化特性
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 什么是Javascript函数节流?
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 微信公众号开发小记——5.python微信红包
  • 为视图添加丝滑的水波纹
  • 一个项目push到多个远程Git仓库
  • ​VRRP 虚拟路由冗余协议(华为)
  • # 数论-逆元
  • $ git push -u origin master 推送到远程库出错
  • $(function(){})与(function($){....})(jQuery)的区别
  • (1)(1.11) SiK Radio v2(一)
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (第27天)Oracle 数据泵转换分区表
  • (二)斐波那契Fabonacci函数
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)计算机毕业设计高校学生选课系统
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (一)Linux+Windows下安装ffmpeg
  • (转)c++ std::pair 与 std::make
  • (转载)PyTorch代码规范最佳实践和样式指南