Hello!
2014-05-14 19:47 GMT-07:00 bestgembler:
>
> local reqs = {}
> table.insert(reqs, { "/mysql", { vars = { key = "m"}})
> table.insert(reqs, { "/postgres", { vars = { key = "p"}})
> table.insert(reqs, { "/redis", { vars = { key = "r"}})
> table.insert(reqs, { "/memcached", { vars = { key = "me"}})
>
> local resps = { ngx.location.capture_multi(reqs) }
>
> for i, resp in ipairs(resps) do
> -- 请问有什么方法在此处获取每个请求对应的 var.key ?
> end
>
1. 返回的响应列表的顺序和你传给 ngx.location.capture_multi() 的请求列表的顺序是完全一致的。所以你可以自己在
Lua 代码里建立关联。这毕竟是 Lua 语言。
2. 每个子请求的 ngx.ctx 和 nginx
变量默认都是独立的,你可以设置父子共享,或者你自己显式地通过子请求的响应头之类的东西传出给父请求(毕竟子请求的界面摸拟了 http
协议的界面)。
Regards,
-agentzh