我有一个变量$aet
,我在lua初始化,但我希望我也可以在nginx中使用它。
这是我的代码:
location /getIp {
default_type 'application/json';
rds_json on;
content_by_lua '
if ngx.var.host:match("(.*).nexus$") ~= nil then
aet = ngx.var.host:match("(.-)%.")
$aet = aet;
end
';
postgres_pass database;
postgres_query "SELECT ip FROM establishment_view WHERE aet = $aet";
postgres_output rds;
}
它不起作用,因为在查询中它不知道变量aet:
nginx:[emerg] unknown" aet"变量
答案 0 :(得分:1)
RTFM https://github.com/openresty/lua-nginx-module#ngxvarvariable
读写Nginx变量值。
value = ngx.var.some_nginx_variable_name
ngx.var.some_nginx_variable_name = value
请注意,只能写入已定义的nginx变量。 例如:
location /foo {
set $my_var ''; # this line is required to create $my_var at config time
content_by_lua_block {
ngx.var.my_var = 123;
...
}
}
也就是说,无法动态创建nginx变量。