nginx 如何在Openresty中设置变量的初始值

jvlzgdj9  于 2023-03-29  发布在  Nginx
关注(0)|答案(1)|浏览(150)

1.我想要的
我正在使用openresty stream,我想在nginx.conf中设置一个变量,lua文件可以访问这个变量。
1.我试过什么
我试过lua_add_variable,但似乎lua_add_variable不能设置初始值。
我也试过set $var value,但我得到了错误:"set" directive is not allowed here,我认为set不能用于stream
1.我的代码

nginx.conf

 stream {
     # lua_add_variable $servers_list "client1;client2";
     # set $servers_list "client1;client2"; # set not allowed here

     upstream backend {
         server 127.0.0.1:666;
     }
     server {
         lua_code_cache off;
         listen 65;
         preread_by_lua_file lua/echo.lua;
         content_by_lua_block {
             ngx.say("nerver reach here")
         }
     }

}

echo.lua

ngx.log(ngx.ERR, "list is ", ngx.var.servers_list) -- I want to get "client1;client2" here
e4yzc0pl

e4yzc0pl1#

set指令可用于流子系统-https://nginx.org/en/docs/stream/ngx_stream_set_module.html#set-但仅在server上下文块中:
上下文:server
要修复以下错误:
此处不允许使用“set”指令
将指令移动到server上下文块:

server {
    set $servers_list "client1;client2";
    lua_code_cache off;
    ...

相关问题