nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链

1、具体安装教程:http://www.cnblogs.com/tinywan/p/5983694.html/

2、Nginx配置文件

location /hls {
alias /tmp/hls;
}
location /download {
accesskey on;
accesskey_hashmethod md5;
accesskey_arg "key";
#accesskey_signature "password$remote_addr";
accesskey_signature "password121.1.206.18/1";
alias /tmp/hls;
}

其中:
accesskey 为模块开关;

accesskey_hashmethod 为加密方式MD5或者SHA-1;

accesskey_arg  为url中的关键字参数;

accesskey_signature 为加密值,此处为mypass和访问IP构成的字符串。我在这是设置为指定的IP地址,为了只让该一个IP地址可以播放该流既可以

/download 为你下载的目录 【已开启防盗链】

/hls 为m3u8存放文件的地方  【未开启防盗链】

可以看出该两个模块公用一个文件夹 /tmp/hls;

3、测试权限

通过 curl 测试

【1】获取该MD5加密值:

root@iZ231gvwxe7Z:/home/www# echo -n password121.1.206.18|md5sum 
c7e2d8f498920f1a86e4c95d4a58a27e -

md5加密值为:c7e2d8f498920f1a86e4c95d4a58a27e

echo -n 表示不输出换行符 ,md5sum 加密方法

【2】没带可以的测试结果:403 Forbidden

www@iZ23a7607jaZ:/home/tinywan$ curl -i http://访问的IP地址(这里是直播节点IP地址)/download/S0000_8.m3u8
HTTP/1.1 403 Forbidden
Server: nginx/1.8.1
Date: Fri, 21 Oct 2016 07:46:07 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive <html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.8.1</center>
</body>
</html>

【2】携带正确的key的测试结果:可以获取到hls文件下面的m3u8文件

root@iZ231gvwxe7Z:/home/www# curl -i http://访问的IP地址(这里是直播节点IP地址)/download/S0000_8.m3u8?key=c7e2d8f498920f1a86e4c95d4a58a27e
HTTP/1.1 200 OK
Server: nginx/1.8.1
Date: Fri, 21 Oct 2016 07:26:39 GMT
Content-Type: application/vnd.apple.mpegurl
Content-Length: 255
Last-Modified: Fri, 21 Oct 2016 07:26:34 GMT
Connection: keep-alive
ETag: "5809c32a-ff"
Accept-Ranges: bytes #EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:368
#EXT-X-TARGETDURATION:5
#EXTINF:5.013,
S0000_8-368.ts
#EXTINF:5.013,
S0000_8-369.ts
#EXTINF:5.014,
S0000_8-370.ts
#EXTINF:5.013,
S0000_8-371.ts
#EXTINF:5.013,
S0000_8-372.ts
#EXTINF:5.014,
S0000_8-373.ts

【3】携带错误的key的测试结果:403 Forbidden

www@iZ23a7607jaZ:/home/tinywan$ curl -i http://访问的IP地址(这里是直播节点IP地址)/download/S0000_8.m3u8?key=c7e2d8f498920f1a86e4c95d4a58a27
HTTP/1.1 403 Forbidden
Server: nginx/1.8.1
Date: Fri, 21 Oct 2016 07:46:07 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive <html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.8.1</center>
</body>
</html>

key 值是根据用户的IP有关的,这样就可以避免被盗链了。

Nginx模块学习之————accesskey权限模块使用(Nginx防盗链详细解说),防止别人下载文件和图片的更多相关文章

  1. Nginx模块学习之————accesskey权限模块使用(简单的m3u8防盗链)

    配置文件:http://www.cnblogs.com/tinywan/p/5983694.html 通过加密后的文件: 正确地址:curl -i http://访问的IP地址(这里是直播节点IP地址 ...

  2. [转]python3之paramiko模块(基于ssh连接进行远程登录服务器执行命令和上传下载文件的功能)

    转自:https://www.cnblogs.com/zhangxinqi/p/8372774.html 阅读目录 1.paramiko模块介绍 2.paramiko的使用方法 回到顶部 1.para ...

  3. Linux学习笔记之权限与命令之间的关系(重要)及文件与文件夹知识总结

    一.让使用者能进入某文件夹成为可工作文件夹的基本权限为何: 可使用的命令:比如 cd 等变换工作文件夹的命令. 文件夹所需权限:使用者对这个文件夹至少须要具有 x的权限 额外需求:假设使用者想要在这个 ...

  4. Nginx 之四: Nginx服务器的rewrite、全局变量、重定向和防盗链相关功能

    一:Nginx 后端服务器组的配置: 1.upstream: 用于设置后端服务器组的主要指令,upstream类似于之前的server块或http块,用法如下: upstreame Myserver{ ...

  5. Nginx服务器的rewrite、全局变量、重定向和防盗链相关功能

    一:Nginx 后端服务器组的配置: 1.upstream: 用于设置后端服务器组的主要指令,upstream类似于之前的server块或http块,用法如下: upstreame Myserver{ ...

  6. [Nginx]用Nginx实现与应用结合的訪问控制 - 防盗链

    应用场景:图片等资源须要设置权限,如:仅仅有认证过的用户才干訪问自己的图片. 解决的方法:使用Nginx的防盗链模块http_secure_link能够实现,该模块默认情况下不包括.故在安装时要加上- ...

  7. Nginx防盗链的3种方法 文件防盗链 图片防盗链 视频防盗链 linux防盗链

    Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性: 在高连接并发的情况下,Nginx是Apache服务器不错的替代品,目前Web服务器调查显示Apache下降Ngni ...

  8. Python3 学习第九弹: 模块学习二之文件管理模块

    os模块 提供访问操作系统的接口 1> name 获得当前操作系统 其中 'nt' 是 windows 'posix' 是 linux 2> environ 获得当前系统的环境变量的字典, ...

  9. Scikit-Learn模块学习笔记——数据预处理模块preprocessing

    preprocessing 模块提供了数据预处理函数和预处理类,预处理类主要是为了方便添加到 pipeline 过程中. 数据标准化 标准化预处理函数: preprocessing.scale(X, ...

随机推荐

  1. win10启动文件夹:

    win10启动文件夹: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

  2. Docker centos 安装syslog

    在通常的Linux服务器中,有一些服务本身没有日志,只能通过 tail -f /var/log/messages来查看其运行日志,比如nrpe server.但是,如果想在docker容器中实现这个功 ...

  3. HDU 5898:odd-even number(数位DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=5898 题意:给出一个区间[l, r],问其中数位中连续的奇数长度为偶数并且连续的偶数长度为奇数的个数.(1< ...

  4. java 模拟消息的发送功能

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; /* * 完成消息的发送功能 * 在发送消息之前, ...

  5. 测试-关于Unity获取子层级内容的几种接口(Transform FindChild, Component GetComponentInChildren,...)

    测试常用的层级内组件查找接口,但一些需求还是需要扩展 比如按照名称批量查找节点,查找接口对象等 1.Transform - Transform Find(string name) 可以直接根据名称搜索 ...

  6. Python类的定义与使用

    #! /usr/bin/python # Filename:objvar.py class Person: '''Represents a person.''' population = 0 def ...

  7. UML的概念模型

    为 了理解UML,需要形成该语言的概念模型,这要求学习建模的3个要素:UML的基本构造块.支配这些构造块如何放在一起的规则和一些运用于整个UML的公 共机制.如果掌握了这些思想,就能够读懂UML模型, ...

  8. ASP函数大全

    ASP函数大全 Array() FUNCTION: 返回一个数组 SYNTAX: Array(list) ARGUMENTS: 字符,数字均可 EXAMPLE: <% Dim myArray() ...

  9. 压缩和解压缩gz包

    gz是Linux和OSX中常见的压缩文件格式,下面是用java压缩和解压缩gz包的例子 public class GZIPcompress { public static void FileCompr ...

  10. CodeForces 651B Beautiful Paintings 贪心

    A. Joysticks time limit per test 1 second memory limit per test 256 megabytes input standard input o ...