location /mus/dln/stream {
location ~ ^/mus/dln/stream/(?P<trID>[^/]+)$ {
add_header Content-Type "audio/wav";
proxy_hide_header Content-Type;
set $diyURI ab;
rewrite_by_lua '
local res =
ngx.location.capture("/mus/internal/getDlnURI/"..ngx.var.trID)
ngx.var.dlnURI = res.body
';
proxy_pass $dlnURI ;
}
}
location /mus/internal {
internal;
location ~
^/mus/internal/getDlnURI/(?P<redisKeyFromLocation>[^/]+)$ {
add_header Content-Type "text/html";
set $redisKeyPrefix dln;
set $redis_key $redisKeyPrefix$redisKeyFromLocation;
redis_pass 127.0.0.1:6379;
}
В данном случае в локейшен /mus/internal/getDlnURI/ выплёвывется
значение ключа из редиса, затем в локейшене /mus/dln/stream/ мы с
помощью LUA выдёргиваем значения из предыдущего локейшена и
присваиваем это значение новой переменной $dlnURI , которую можем
использовать по своим задачам.
Для отладки параметр internal в локейшене /mus/internal можно
закоментить. И да тут я использовал модуль HttpRedis
(http://wiki.nginx.org/HttpRedis) но суть от этого не меняется
28 марта 2012 г. 12:00 пользователь Saniek <nginx-forum@nginx.us> написал:
> если не трудно, скиньте пожалуйста.
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?21,224390,224519#msg-224519
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru