Здравствуйте.
Столкнулся с проблемой - необходимо использовать 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, результат тотже самый.