美文网首页
NGINX 防盗链处理 利用 internal 语法

NGINX 防盗链处理 利用 internal 语法

作者: 不可思议的黄老师 | 来源:发表于2022-12-21 16:06 被阅读0次

    nginx internal 语法,可以让指定 location 必须被重定向访问

    比如视频播放场景:

    location /videos {
         internal; 
         root /nas/videos;
    }
    

    当访问:http://domain/videos/test.mp4 无法直接访问。

    正确的访问方法是:访问到某个 api 接口,然后接口返回 X-Accel-Redirect
    新建video.php:

    <?php
    
    /**
     * 访问 /video.php 则实际访问的是 /videos/test.mp4.
     *
     * 由此,可以在 php 里实现复杂的认证逻辑比如播放次数、ip、登录权限、用户身份等等。
     */
    
    //TODO 做一些判断和限制
    
    
    //最后跳转到资源
    header("X-Accel-Redirect: /videos/test.mp4");
    
    

    新建video.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <video width="320" height="240" controls> <source src="video.php" type="video/mp4"></video>
    </body>
    </html>
    

    访问 http://domain/video.html 效果如下

    image.png

    注意:

    1、internal 配置的新的root路径要确保url和root的正确
    2、视频格式与浏览器的支持
    当前, <video> 元素支持三种视频格式: MP4, WebM, 和 Ogg:

    浏览器 MP4 WebM Ogg
    Internet Explorer YES NO NO
    Chrome YES YES YES
    Firefox YES YES YES
    Safari YES NO NO
    Opera YES (从 Opera 25 起) YES YES

    MP4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件
    WebM = 带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件
    Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件

    视频格式
    格式 MIME-type
    MP4 video/mp4
    WebM video/webm
    Ogg video/ogg

    相关文章

      网友评论

          本文标题:NGINX 防盗链处理 利用 internal 语法

          本文链接:https://www.haomeiwen.com/subject/wgemqdtx.html