Hello!
2013/7/22 Aaron Lewis:
> 我尝试获取任意的 shared_dict,
>
> local name = ngx.var.arg_name
> local shm = ngx.var.name
>
> 但是这样似乎只能获得名字为“name”的共享内存,有没有办法获得名字为ngx.var.arg_name的共享内存?
>
这是很基本的 Lua table 下标访问的问题。当 key 是变量时,就不能再使用圆点记法了,而应使用方括号记法,即:
local shm = ngx.shared[name]
另外,Nginx 的 $arg_name 变量是未经过 URI 反转义处理的原始 URI 参数值(即可能会有 %XX
之类的转义序列存在),应当总是使用 ngx.unescape_uri 反转义之,即
local name = ngx.unescape_uri(ngx.var.arg_name)
Regards,
-agentzh