在OpenResty中,使用set_by_lua指令定义的内容会在服务器启动时执行一次,并将结果保存在Nginx共享内存中。然后,每个请求到达时,不会再重新执行Lua代码,而是从共享内存中获取结果。

这种方式可以提高性能,因为避免了每个请求都执行Lua代码的开销。但是,这也意味着如果需要动态更新这些值,需要重新启动服务器。

如果需要在每个请求时都执行Lua代码并获取实时结果,可以使用content_by_lua指令,将Lua代码直接嵌入到Nginx配置文件中。这样,在每个请求到达时,都会执行Lua代码并返回结果。但是,这种方式可能会对性能产生一定的影响,特别是在高并发环境下。

因此,根据具体需求,可以选择适合的方式来定义和执行Lua代码。

openresty 中conf中用set_by_lua 定义的内容是在执行lua时才会即时执行的吗

原文地址: https://www.cveoy.top/t/topic/h8Eg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录