Я использую nginx secure_link, чтобы предотвратить передачу видео по хотлинку. Если ключ основного сервера соответствует ключу удаленного сервера. Ролик можно будет получить / посмотреть. В противном случае, если пользователь обращается к ссылке напрямую, без ссылки md5, возвращается видео 403.
. .
Ключ md5 соответствует как основному, так и удаленному. И время сервера такое же.
. .
Главный сервер (Apache) Создайте ссылку, подобную этой.
http://remote_example.com/videos/myvideo.mp4?st=E_Jb6MScgyMqjUo3eNQGkA&e=1485757614
. .
Конфигурация удаленного сервера nginx. "mypassword" совпадает с настройкой основного сервера. Удаленный сервер с помощью панели VestaCP.
location ^~ /videos/ {
alias /home/admin/web/example.com/public_html/videos;
secure_link $arg_st,$arg_e;
secure_link_md5 mypassword$uri$arg_e;
if ($secure_link = "") {
return 403; # invalid hash or direct link
}
if ($secure_link = "0") {
return 410; # link expired
}
mp4;
gzip off;
gzip_static off;
mp4_buffer_size 5m;
mp4_max_buffer_size 5m;
limit_rate_after 3m;
limit_rate 512k;
}
Сервер уже скомпилирован с помощью «Http Secure Link Module». Но когда я использую конфигурацию выше и пытаюсь перейти по ссылке. Я все еще могу получить доступ к файлу mp4 напрямую без ссылки md5. Кто-нибудь может помочь решить эту проблему? Смогли бы заплатить за любое рабочее решение.