我正在使用 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 安全链接模块”编译。但是当我使用上面的配置并尝试访问链接时。我仍然可以直接访问 mp4 文件,而无需 md5 链接。有人可以帮忙解决这个问题吗?愿意为任何可行的解决方案付费。