在lua和nginx中使用变量

我有一个变量 $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" variable

点赞
用户2060502
用户2060502

Lua Nginx 模块 - ngx.var.variable

读取和写入 Nginx 变量值。

value = ngx.var.some_nginx_variable_name
ngx.var.some_nginx_variable_name = value

注意,只能写入已经定义的 Nginx 变量。例如:

location /foo {
    set $my_var ''; # 此行代码必须创建 $my_var 
    content_by_lua_block {
        ngx.var.my_var = 123;
        ...
    }
}

也就是说,无法动态创建 Nginx 变量。

2018-02-13 10:11:04