在NGINX中,在LUA指令之间交换变量。

我正在使用HttpLuaModule作为我的NGINX服务器。我想问一下是否可以在该模块的不同指令中识别变量。例如

 init_by_lua ' local global_var = 5 ' ;
 some config ;
 set_by_lua ' print(global_var) ' ;

如何通过NGINX和LUA模块实现这一点?

点赞
用户107090
用户107090

如果你希望 global_var 成为全局变量,那就不要将它声明为局部变量。

从快速浏览 NGINX 的文档来看,init_by_luaset_by_lua 在同一个全局 Lua 状态下工作,因此如果使用全局变量,就可以使它们进行通信。在 init_by_lua 中设置的局部变量将会丢失。

因此,如果你只是在 init_by_lua 中移除 local,那么它应该可以正常工作。

2013-07-23 13:53:49