openresty 中conf中用set_by_lua $env aaa 和 set $env bbb 。在lua中 通过 ngxvarenv 获取的是什么
在OpenResty中,通过set_by_lua指令设置的环境变量可以通过ngx.var.env获取,而通过set指令设置的环境变量则不能直接通过ngx.var.env获取。
具体来说,使用set_by_lua指令设置的环境变量可以在Lua代码中通过ngx.var.env获取,例如:
http {
server {
location /test {
set_by_lua $env 'aaa';
content_by_lua '
ngx.say(ngx.var.env);
';
}
}
}
上述示例中,当访问/test时,会输出aaa。
而使用set指令设置的环境变量则不能直接通过ngx.var.env获取,需要使用ngx.req.set_header函数将环境变量设置为HTTP请求头的形式,然后在Lua代码中通过ngx.req.get_headers()["env"]获取,例如:
http {
server {
location /test {
set $env 'bbb';
rewrite_by_lua '
ngx.req.set_header("env", ngx.var.env);
';
content_by_lua '
ngx.say(ngx.req.get_headers()["env"]);
';
}
}
}
上述示例中,当访问/test时,会输出bbb
原文地址: https://www.cveoy.top/t/topic/h8Es 著作权归作者所有。请勿转载和采集!