使用 Nginx 的 http_secure_link 模块可以很容易地实现对 m3u8 文件的防盗链。以下是一个示例代码:

location /video/ {
    # 设置 m3u8 文件的存放目录
    alias /data/video/;
    # 开启 http_secure_link 模块
    secure_link $arg_md5,$arg_expires;
    secure_link_md5 '$secure_link_expires$uri$remote_addr secret_key';
    # 设置防盗链的有效期为 10 分钟
    if ($secure_link = '') { return 403; }
    if ($secure_link = '0') { return 410; }
    # 设置防盗链过期时间
    if ($secure_link_expires < time) { return 410; }
    # 设置 m3u8 文件的 Content-Type
    default_type application/vnd.apple.mpegurl;
}

在上述代码中,我们首先设置了 m3u8 文件的存放目录为 '/data/video/',然后开启了 http_secure_link 模块,使用 '$arg_md5' 和 '$arg_expires' 来获取 URL 中的 md5 值和过期时间。接着,我们使用 secure_link_md5 指令生成 md5 值,并设置防盗链的有效期为 10 分钟。如果防盗链无效,则返回 403 错误;如果防盗链已过期,则返回 410 错误;否则,设置 m3u8 文件的 Content-Type 为 'application/vnd.apple.mpegurl'。

Nginx Http_secure_link 模块实现 m3u8 文件防盗链

原文地址: https://www.cveoy.top/t/topic/oo6r 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录