如何使用lua在nginx的结构中设置变量

如何使用lua在nginx的结构中设置变量,nginx,lua,Nginx,Lua,我需要使用lua在(nginx内部C结构)ngx_http_request_s中设置一个变量 此变量对于每个请求都有一个唯一的值 这能做到吗?该字段是否需要作为变量公开,或者是否有其他方法可以做到这一点?您提到的第一种方法是公开要在lua中修改的变量。然后变量回调(ngx\u http\u variable\u s::set\u handler)可以更改nginx的内部C结构 第二种方法是创建LUAC绑定。LuaNginx模块导出一些C API,用于将C绑定到lua。 下面是dyups模块的一个

我需要使用lua在(nginx内部C结构)
ngx_http_request_s
中设置一个变量

此变量对于每个请求都有一个唯一的值


这能做到吗?该字段是否需要作为变量公开,或者是否有其他方法可以做到这一点?

您提到的第一种方法是公开要在lua中修改的变量。然后变量回调(
ngx\u http\u variable\u s::set\u handler
)可以更改nginx的内部C结构

第二种方法是创建LUAC绑定。LuaNginx模块导出一些C API,用于将C绑定到lua。 下面是dyups模块的一个示例:和。请注意,您可以通过C函数中的
ngx\u http\u lua\u get\u req(L)
获取
ngx\u http\u request\u t*
指针


我喜欢的第三种方式是通过模块直接在ngx.lua中调用C函数但它不能在您的情况下工作,没有好的方法获取FFI中名为C函数的当前
lua\u状态*
指针或
ngx\u http\u请求*
指针。

这是nginx内部C结构吗?你的问题是,它是否会暴露给lua进行修改?@EtanReisner是的,这是一个内部nginx C结构,我已经修改了它,添加了一个ngx_stru_t*。我想知道暴露一个变量是唯一可以设置它的方法,还是我们也可以通过任何其他方式进行设置。