NGINX 防盗链处理 利用 internal 语法

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、HTML5简介 HTML5是根据2014年由万维网联盟(W3C)完成标准制定的,他的设计目的主要是为了在移动设...
    刘松阳阅读 346评论 0 0
  • 1、视频格式与浏览器的支持 当前, 元素支持三种视频格式: MP4, WebM, 和 Ogg:浏览器 ...
    maskerII阅读 449评论 0 0
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 4,119评论 0 0
  • Web站点上的视频:直到现在,仍然不存在一项旨在网页上显示视频的标准今天,大多数视频通过插件(比如Flash)来显...
    龍飝阅读 528评论 0 1
  • 学习HTML的最佳网站没有之一http://www.w3school.com.cn/html/ 关于HTML/HT...
    Amyyy_阅读 2,159评论 0 16