LUA中的环境变量



我有一个Lua脚本登录到Redis和处理一些查询,以启用基于IP的阻塞

下面是我在Lua脚本中使用的Redis配置,为了在每次点击web服务器时运行该脚本,我在Nginx会议中使用access_by_lua指令

--- Redis Configuration
local redis_host = "100.2.4.4"
local redis_port = 6379
local redis_timeout = 30
local cache_ttl     = 3600

我想在reds_host和端口中使用环境变量,而不是静态值任何帮助都是感激的

注意:

我试过了,但是没有运气

--- Redis Configuration
local redis_host = os.getenv("redis_auth_host")
local redis_port = os.getenv("redis_auth_port")
local redis_timeout = 30
local cache_ttl     = 3600

Redis在沙盒中运行Lua脚本,禁用全局变量,只有少数例外。在您的示例中,os是一个禁用的全局变量,因此您不能使用它。

为了避免硬编码主机和端口,你可以在Redis的key space中设置它们,即在Redis中将host和port设置为key-value对,并使用redis.call()方法获取它们。

local redis_host = redis.call("get", "host")
local redis_port = redis.call("get", "port")

最新更新