Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx–;从redis读取值并将其存储到变量中_Nginx_Redis_Subdomain - Fatal编程技术网

Nginx–;从redis读取值并将其存储到变量中

Nginx–;从redis读取值并将其存储到变量中,nginx,redis,subdomain,Nginx,Redis,Subdomain,有没有办法读取redis值并将其存储到nginx变量中 我想使用它的多域网站,其中子域将指向不同的IP。所有子域都将存储在redis中,如下所示: "subdomain" => "address_for_proxy_pass" 所以我需要的是解析子域(done),将其存储到变量(done)中,然后进行redis查询(done),并将结果存储到变量中。如何轻松做到这一点?+?lua resty redis不能在由lua设置的中使用 但是,$foobar可以通过ngx.var.foobar使

有没有办法读取redis值并将其存储到nginx变量中

我想使用它的多域网站,其中子域将指向不同的IP。所有子域都将存储在redis中,如下所示:

"subdomain" => "address_for_proxy_pass"

所以我需要的是解析子域(done),将其存储到变量(done)中,然后进行redis查询(done),并将结果存储到变量中。如何轻松做到这一点?

+?

lua resty redis不能在由lua设置的
中使用

但是,
$foobar
可以通过
ngx.var.foobar
使用
access\u by\u lua
在lua中直接设置。详情如下:(感谢OP和评论)

必须初始化变量-
设置$myvar'


你不能生成nginx配置并使用它吗?还是要在每个页面请求上查询redis?嗨,Sergio!我只想在子域存在时查询redis。子域将被动态添加,所以我不能在每次创建新子域时生成配置。是的!我写信给@agentzh,他给了我一个很好的建议:
  # initialize variable
  set $backend '';

  access_by_lua '
  local redis = require "resty.redis"
  local red = redis:new()
  -- these ENV vars must be initialized with `env` keyword
  red:connect(os.getenv("REDIS_PORT_6379_TCP_ADDR"), os.getenv("REDIS_PORT_6379_TCP_PORT"))
  local res, err = red:get(ngx.var.appid)
  -- set the variable directly
  ngx.var.backend = res
  ';

  proxy_pass http://$backend;