我有一个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")