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