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

简介: nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链1、具体安装教程:http://www.cnblogs.com/tinywan/p/5983694.html/2、Nginx配置文件location /hls { ...

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=c7e2d8f498920f1a86e4c95d4a58a271234
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有关的,这样就可以避免被盗链了。

 

目录
相关文章
|
19天前
|
负载均衡 应用服务中间件 数据处理
Nginx学习使用
Nginx学习使用
38 0
|
1月前
|
应用服务中间件 nginx
Nginx安装nginx-rtmp-module模块
【2月更文挑战第4天】 nginx中的模块虽然就是类似插件的概念,但是它无法像VsCode那样轻松的安装扩展。 nginx要安装其它模块必须同时拿到nginx源代码和模块源代码,然后手动编译,将模块打到nginx中,最终生成一个名为nginx的可执行文件。
76 6
|
3月前
|
应用服务中间件 nginx
百度搜索:蓝易云【利用nginx内置ngx_http_mirror_module模块实现流量复制及流量放大】
以上就是使用Nginx内置 `ngx_http_mirror_module`模块实现流量复制和流量放大的简要示例。通过合理配置和利用该模块,可以实现更复杂的流量控制和调试需求。
58 1
|
1天前
|
JavaScript 前端开发 应用服务中间件
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
8 0
|
28天前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
29 0
|
2月前
|
缓存 负载均衡 安全
Nginx 学习
Nginx 学习
30 0
|
2月前
|
消息中间件 关系型数据库 MySQL
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
63 0
|
3月前
|
存储 应用服务中间件 nginx
Nginx模块开发:handler模块实现
Nginx模块开发:handler模块实现
29 0
|
3月前
|
存储 应用服务中间件 nginx
Nginx模块开发:模块结构的源码阅读以及过滤器(Filter)模块的实现
Nginx模块开发:模块结构的源码阅读以及过滤器(Filter)模块的实现
65 0
|
应用服务中间件 nginx
杨老师课堂之Nginx学习之安装篇
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kese7952/article/details/81081413 基于Linux的安装,本篇教程提供两种安装实现,尽管之前安装过很多次,但是这里还是做一个整理。
1066 0