nginx set變量後lua沒法改值

今天在使用lua修改nginx自定義變量的時候,發現死活更改不了,以下所示:nginx

有問題的代碼lua

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判斷力,未解。code

因而我稍做修改,運行邏輯就行了,以下所示:
無問題的代碼it

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給改動了。變量

相關文章
相關標籤/搜索