在 Openresty/Lua 和 ngx.ctx 中的块之间传递变量
Passing variable between blocks in Openresty/Lua with ngx.ctx
试图在两个 lua 块之间传递变量。据说,这应该与 ngx.ctx 一起使用,如下所示:
header_filter_by_lua_block {
ngx.ctx.myvar = ngx.header["X-fetch"];
}
access_by_lua_block {
ngx.header["X-send"] = ngx.ctx.myvar;
}
但事实并非如此。怎么了?
P.S。在一个块中对两者进行测试确实有效(基本上复制现有的 header,但这只是为了说明)
header_filter_by_lua_block {
ngx.ctx.myvar = ngx.header["X-fetch"];
ngx.header["X-send"] = ngx.ctx.myvar;
}
那是因为 access_by_lua_block
在 header_filter_by_lua_block
之前运行。
看看https://openresty-reference.readthedocs.io/en/latest/Directives/
试图在两个 lua 块之间传递变量。据说,这应该与 ngx.ctx 一起使用,如下所示:
header_filter_by_lua_block {
ngx.ctx.myvar = ngx.header["X-fetch"];
}
access_by_lua_block {
ngx.header["X-send"] = ngx.ctx.myvar;
}
但事实并非如此。怎么了?
P.S。在一个块中对两者进行测试确实有效(基本上复制现有的 header,但这只是为了说明)
header_filter_by_lua_block {
ngx.ctx.myvar = ngx.header["X-fetch"];
ngx.header["X-send"] = ngx.ctx.myvar;
}
那是因为 access_by_lua_block
在 header_filter_by_lua_block
之前运行。
看看https://openresty-reference.readthedocs.io/en/latest/Directives/