secure link в разных location
Unreal
nginx-forum at nginx.us
Wed Oct 2 09:20:32 UTC 2013
Здравствуйте.
Столкнулся с проблемой - необходимо использовать secure_link в двух разных
location с разными приципами формаирования secure_link_md5 в пределах одного
server. Вроде все просто:
server {
listen 80;
root /home/somepath/;
server_name example.com;
location ~ (\.mp4) {
set $secretPharse xxx;
set $key $arg_k;
set $expire $arg_e;
secure_link $key,$expire;
secure_link_md5 $secretPharse$expire$remote_addr$uri;
if ($secure_link != "1") { error_page 418 = @test2; return 418; }
}
location @test2 {
set $secretPharse xxx2;
set $key $arg_k;
set $expire $arg_e;
set $ip "192.168.1.1";
secure_link $key,$expire;
secure_link_md5 $secretPharse$expire$ip$uri;
if ($secure_link != "1") { return 403; }
}
}
Но при этом ничего не работает. Собрал с debug, стал смотреть - первый
локейшен отрабатывается четко как надо, переходим во второй, все выполняем
кроме строк:
secure_link $key,$expire;
secure_link_md5 $secretPharse$expire$ip$uri;
Их nginx пропускает, тоесть повтороно он не обсчитывает md5 хеш... При этом
в документации указано, что secure_link может применяться в http, server,
location .
Что делать?
P.S. пробовал также rewrite вместо именованного location, результат тотже
самый.
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243360,243360#msg-243360
Подробная информация о списке рассылки nginx-ru