在Openresty/Lua中使用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_filter_by_lua_block  {
ngx.ctx.myvar = ngx.header["X-fetch"];
ngx.header["X-send"] = ngx.ctx.myvar;
}
点赞
用户834045
用户834045

这是因为access_by_lua_blockheader_filter_by_lua_block之前运行。

请参阅https://openresty-reference.readthedocs.io/en/latest/Directives/

2019-10-11 22:20:24