今天在使用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给改动了。

nginx set变量后lua无法改值的更多相关文章

  1. nginx编译安装支持lua脚本

    一.准备编译环境 1.操作系统:CentOS7.6 2.安装编译所需安装包 yum install gcc pcre pcre-devel zlib zlib-devel openssl openss ...

  2. Nginx 的变量究竟是怎么一回事?

    之前说了很多关于 Nginx 模块的内容,还有一部分非常重要的内容,那就是 Nginx 的变量.变量在 Nginx 中可以说无处不在,认识了解这些变量的作用和原理同样是必要的,下面几乎囊括了关于 Ng ...

  3. 记录一次 Nginx 配置 proxy_pass 后 返回404问题

    一. Nginx 配置 proxy_pass 后 返回404问题 故障解决和定位 1.1. 问题 在一次生产涉及多次转发的配置中, 需求是下面的图: 在配置好了 proxy_pass 之后,请求 ww ...

  4. nginx反向代理后getRequestURL会出现问题

    nginx反向代理后getRequestURL会出现问题 http://huangqiqing123.iteye.com/blog/1895192

  5. nginx代理tomcat后,tomcat获取真实(非proxy,非别名)nginx服务端ip端口的解决方案

    nginx代理tomcat后,tomcat获取服务端ip端口的解决方案 1.注意修改nginx配置代理,标红地方 #user nginx; worker_processes ; error_log l ...

  6. 为PHP设置服务器(Apache/Nginx)环境变量

    为PHP设置服务器(Apache/Nginx)环境变量 设置环境变量常见的地方为区分开发环境/生产环境,或者定义一些数据库的帐号密码 设置Apache环境变量 指令 设置当前环境变量为DEV SetE ...

  7. JAVA获取客户端请求的当前网络ip地址(附:Nginx反向代理后获取客户端请求的真实IP)

    1. JAVA获取客户端请求的当前网络ip地址: /** * 获取客户端请求的当前网络ip * @param request * @return */ public static String get ...

  8. 记一次安装Nginx+php-fpm安装后无法解析.php文件,状态码200,但显示空白页

    安装环境: Nginx:Nginx1.12.2 PHP:PHP 7.2 系统:CentOS 7.4 安装方式: Nginx与PHP都是yum安装的,具体步骤: 1.安装epel源再安装Nginx: r ...

  9. Windows 10 修改系统环境变量后,CMD生效,Powershell未生效

    Windows 10 修改系统环境变量后 1.CMD重新打开,新环境变量已经生效: 2.Shift+右键Powershell重新打开,新环境变量没有生效: 3.貌似服务(Apache24)中使用的环境 ...

随机推荐

  1. 64位ubuntu搭建android开发环境问题解决方案

    安装32位库支持,删除eclipse 的配置文件和.android目录(测试环境ubuntu 14.04) sudo apt-get install libc6-i386 lib32stdc++6 l ...

  2. Android Studio 解决ADB检测不到手机导致无法连接的问题

    ADB的全称是Android Debug Bridge,是用来管理模拟器和真机的通用调试工具. 开USB调试 方法:手机设置 - 开发人员选项 - USB调试 - 勾选(开发者调试被隐藏了,在关于手机 ...

  3. Incorrect username or password ( access token )解决

    Q:Git提交时,给出提示Incorrect username or password ( access token ) K: 此处是用户名或者密码有误,建议解决方法两种.具体看哪一种可行,可试. 第 ...

  4. 基于Tkinter以及百度翻译爬虫做的一个小的翻译软件

    首先看效果: 输入Hello, 可见输出 int. 打招呼 下面看源码: from tkinter import * import requests# 首先导入用到的库 request = reque ...

  5. CSS_级联和继承

    2016-11-06 <CSS入门经典>第七章 1.在HTML中使用CSS样式表的三种方式: (1)内联的样式表. eg:<em style="background-whi ...

  6. CentOS 7创建自定义KVM模板(现有KVM迁移到另外一台机)

    说明:创建KVM模板有个好处,不用每次都运行命令创建,并且可以为迁移做准备. 一.创建KVM模板 1.下载iso(省略) 2.创建磁盘 qemu-img create -f raw centos7.r ...

  7. 咏南ISAPI中间件

    咏南ISAPI中间件 只支持WINDOWS服务器部署,中间件作为IIS的ISAPI插件部署. 基于WINDOWS的IIS,使用HTTP.SYS通讯,不依赖任何三方控件. 可以基于IIS HTTPS. ...

  8. .Net转Java.06.字符串的split的区别

    在Java遇到了将类似“1|2|3|4”的字符串分隔为数组的功能 这种问题能难倒有着十多年开发经验的的.NET码农? // Java代码 String s="1|2|3"; Str ...

  9. C#退出程序,退出任务管理器

    //窗体关闭之前 this.FormClosing += (s, r) => { System.Environment.Exit(0); }; //窗体关闭 this.Closed += (s, ...

  10. [Python设计模式] 第27章 正则表达式——解释器模式

    github地址:https://github.com/cheesezh/python_design_patterns 解释器模式 解释器模式,给定一个语言,定一个它的文法的一种表示,并定一个一个解释 ...