在lua和nginx中使用变量

时间:2018-02-12 13:38:27

标签: database variables nginx lua

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

1 个答案:

答案 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变量。