配置文件:http://www.cnblogs.com/tinywan/p/5983694.html

通过加密后的文件:

  1. 正确地址:curl -i http://访问的IP地址(这里是直播节点IP地址)/hls/S0000_8.m3u8?key=c7e2d8f498920f1a86e4c95d4a58a27e
  2. 参数错误地址:curl -i http://访问的IP地址(这里是直播节点IP地址)/hls/S0000_8.m3u8?key=c7e2d8f498920f1a86e4c95d4a58a27123213
  3. 没带参数:curl -i http://访问的IP地址(这里是直播节点IP地址)/hls/S0000_8.m3u8

【1】正确地址:  curl -i http://访问的IP地址(这里是直播节点IP地址)/hls/S0000_8.m3u8?key=c7e2d8f498920f1a86e4c95d4a58a27e

  1. www@iZ23a7607jaZ:/home/tinywan$ curl -i http://访问的IP地址(这里是直播节点IP地址)/hls/S0000_8.m3u8?key=c7e2d8f498920f1a86e4c95d4a58a27e
  2. HTTP/1.1 200 OK
  3. Server: nginx/1.8.1
  4. Date: Fri, 21 Oct 2016 09:12:39 GMT
  5. Content-Type: application/vnd.apple.mpegurl
  6. Content-Length: 367
  7. Last-Modified: Fri, 21 Oct 2016 09:12:34 GMT
  8. Connection: keep-alive
  9. ETag: "5809dc02-16f"
  10. Cache-Control: no-cache
  11. Access-Control-Allow-Origin: *
  12. Accept-Ranges: bytes
  13.  
  14. #EXTM3U
  15. #EXT-X-VERSION:3
  16. #EXT-X-MEDIA-SEQUENCE:300
  17. #EXT-X-TARGETDURATION:7
  18. #EXT-X-KEY:METHOD=AES-128,URI="https://myserver.com/keys/S0000_8-300.key",IV=0x0000000000000000000000000000012C
  19. #EXTINF:7.000,
  20. S0000_8-300.ts
  21. #EXTINF:7.000,
  22. S0000_8-301.ts
  23. #EXTINF:7.000,

【2】参数错误地址:curl -i http://访问的IP地址(这里是直播节点IP地址)/hls/S0000_8.m3u8?key=c7e2d8f498920f1a86e4c95d4a58a27123213

  1. www@iZ23a7607jaZ:/home/tinywan$ curl -i http://访问的IP地址(这里是直播节点IP地址)/hls/S0000_8.m3u8?key=c7e2d8f498920f1a86e4c95d4a58a27123213
  2. HTTP/1.1 403 Forbidden
  3. Server: nginx/1.8.1
  4. Date: Fri, 21 Oct 2016 09:14:30 GMT
  5. Content-Type: text/html
  6. Content-Length: 168
  7. Connection: keep-alive
  8.  
  9. <html>
  10. <head><title>403 Forbidden</title></head>
  11. <body bgcolor="white">
  12. <center><h1>403 Forbidden</h1></center>
  13. <hr><center>nginx/1.8.1</center>
  14. </body>
  15. </html>

【3】没有携带参数访问:curl -i http://访问的IP地址(这里是直播节点IP地址)/hls/S0000_8.m3u8

  1. www@iZ23a7607jaZ:/home/tinywan$ curl -i http://访问的IP地址(这里是直播节点IP地址)/hls/S0000_8.m3u8
  2. HTTP/1.1 403 Forbidden
  3. Server: nginx/1.8.1
  4. Date: Fri, 21 Oct 2016 09:15:15 GMT
  5. Content-Type: text/html
  6. Content-Length: 168
  7. Connection: keep-alive
  8.  
  9. <html>
  10. <head><title>403 Forbidden</title></head>
  11. <body bgcolor="white">
  12. <center><h1>403 Forbidden</h1></center>
  13. <hr><center>nginx/1.8.1</center>
  14. </body>
  15. </html>
  16. www@iZ23a7607jaZ:/home/tinywan$

【4】Nginx config配置文件:

  1. http {
  2. include mime.types;
  3. default_type application/octet-stream;
  4.  
  5. log_format main '[$time_local][$remote_addr][$http_x_forwarded_for] $status "$request" "$http_referer" "$http_user_agent"';
  6.  
  7. access_log logs/access.log main;
  8.  
  9. sendfile on;
  10. keepalive_timeout 65;
  11.  
  12. server {
  13. listen 443 ssl;
  14. server_name example.com;
  15.  
  16. #ssl_certificate /var/ssl/example.com.cert;
  17. #ssl_certificate_key /var/ssl/example.com.key;
  18.  
  19. location /keys {
  20. root /tmp;
  21. }
  22. }
  23. server {
  24. set $wwwroot /home/www/node/html;
  25.  
  26. listen 80;
  27. server_name 127.0.0.1;
  28. index index.html;
  29. root $wwwroot;
  30. access_log logs/node.access.log main;
  31.  
  32. location /rtmp/stat {
  33. rtmp_stat all;
  34. rtmp_stat_stylesheet rtmpstat.xsl;
  35. }
  36.  
  37. location /rtmpstat.xsl {
  38. }
  39.  
  40. location /rtmp/control {
  41. rtmp_control all;
  42. }
  43.  
  44. location ~* /hls/.*\.m3u8$ {
  45. types {
  46. application/vnd.apple.mpegurl m3u8;
  47. }
  48. root /tmp;
  49. add_header Cache-Control no-cache;
  50. add_header Access-Control-Allow-Origin *;
  51. accesskey on;
  52. accesskey_hashmethod md5;
  53. accesskey_arg "key";
  54. #accesskey_signature "password$remote_addr";
  55. accesskey_signature "password120.26.206.180";
  56.  
  57. }
  58.  
  59. location ~* /hls/.*\.ts$ {
  60. types {
  61. video/mp2t ts;
  62. }
  63. root /tmp;
  64. expires 1m;
  65. add_header Cache-Control public;
  66. add_header Access-Control-Allow-Origin *;
  67. }
  68.  
  69. #error_page 404 /404.html;
  70.  
  71. error_page 500 502 503 504 /50x.html;
  72. location = /50x.html {
  73. root html;
  74. }
  75.  
  76. location /hls {
  77. accesskey on;
  78. accesskey_hashmethod md5;
  79. accesskey_arg "key";
  80. accesskey_signature "password$remote_addr";
  81. #accesskey_signature "password115.29.201.161";
  82.  
  83. alias /tmp/hls;
  84. }
  85.  
  86. location /control {
  87. rtmp_control all;
  88. }
  89.  
  90. }
  91.  
  92. }
  93.  
  94. rtmp {
  95. server {
  96. listen 1935;
  97. ping 30s;
  98. notify_method get;
  99. drop_idle_publisher 3s;
  100.  
  101. application live {
  102. live on;
  103. #pull rtmp://121.40.133.183/live/206 name=206;
  104. #exec /home/www/bin/rtmpHLS.sh $name;
  105. exec /home/www/bin/autoRecord.sh $name;
  106. exec_kill_signal term;
  107. #exec_play /home/www/bin/execPlay.sh $name;
  108. #on_play http://sewise.amai8.com/authcheck/play;
  109. #录像模块
  110. recorder rec1 {
  111. record all manual;
  112. record_unique on;
  113. record_notify on;
  114. record_max_size 512M;
  115. #record_interval 30s;
  116. record_path /data/recorded_flvs;
  117. record_suffix all.flv;
  118.  
  119. #录像停止后,先判断是否能上传,允许后则将录像上传到OSS/
  120. exec_record_done /home/www/bin/rtmpRecorded.sh $name $path $filename $basename $dirname;
  121. }
  122.  
  123. }
  124. hls on;
  125. hls_path /tmp/hls;
  126. #hls_sync 100ms;
  127.  
  128. hls_keys on;
  129. #hls_key_path /tmp/keys;
  130. hls_key_url https://myserver.com/keys/;
  131. hls_fragments_per_key 10;
  132.  
  133. }
  134. }
  1.  

Nginx模块学习之————accesskey权限模块使用(简单的m3u8防盗链)的更多相关文章

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

    nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链 1.具体安装教程:http://www.cnblogs.com/tinywan/p/5983694. ...

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

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

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

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

  4. scikit-learn模块学习笔记(数据预处理模块preprocessing)

    本篇文章主要简单介绍sklearn中的数据预处理preprocessing模块,它可以对数据进行标准化.preprocessing 模块提供了数据预处理函数和预处理类,预处理类主要是为了方便添加到pi ...

  5. 【Python】模块学习之利用string模块造测试数据

    背景 测试过程中需要一些随机数据,使用到了python中的string模块,记录一下 #! /usr/bin/python # coding:utf-8 """ @aut ...

  6. Python3 学习第十四弹: 模块学习六之re模块 + 正则表达式 (转)

    本文转自 AstralWind 的博客:Python正则表达式指南 特来收藏 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有 ...

  7. Redis模块学习笔记(一)RediSearch简单使用

    说明:安装的Redis服务器必须为 4.0 以上版本,通过info命令查看 > INFO redis_version: 一.安装 RediSearch git clone https://git ...

  8. springboot + shiro 构建权限模块

    权限模块基本流程 权限模块的基本流程:用户申请账号和权限 -->登陆认证 -->安全管控模块认证 -->调用具体权限模块(基于角色的权限控制) --> 登陆成功 -->访 ...

  9. nginx之rewrite及防盗链

    rewrite示例-自动跳转https 示例1:自动把首页的http转化成https location / { root /data/nginx/pc/html; index index.html; ...

随机推荐

  1. struts2,实现Ajax异步通信

    用例需要依赖的jar: struts2-core.jar struts2-convention-plugin.jar,非必须 org.codehaus.jackson.jar,提供json支持 用例代 ...

  2. svn搭建以及可能遇到的问题解决方案

    Svn服务器的安装和配置 1.安装svn服务器端软件从镜像服务器或者YUM源下载安装SVN服务器软件:yum install subversion mkdir /usr/local/svn //创建S ...

  3. NSAssert用法

    今天突然发现了一个开发ios程序时调试的好帮手-NSAssert()函数.而且和NSLog()函数一样简单易用,代码如下: NSAssert(x!=0,@"x must not be zer ...

  4. ACE的接受器(Acceptor)和连接器(Connector):连接建立模式

    ACE_Acceptor工厂的open()方法,或是它的缺省构造器(它实际上会调用open()方法),来开始被动侦听连接.当接受器工厂的open()方法被调用时,如果反应堆单体还没有被实例化,open ...

  5. CMake快速入门教程:实战

    转自http://blog.csdn.net/ljt20061908/article/details/11736713 0. 前言    一个多月前,由于工程项目的需要,匆匆的学习了一下cmake的使 ...

  6. 收藏本网站兼容火狐IE

    <script type="text/javascript"> function AddFavorite(sURL, sTitle) {try { window.ext ...

  7. SQL Server 索引和表体系结构(二)

    转自:http://www.cnblogs.com/chenmh 非聚集索引 概述 对于非聚集索引,涉及的信息要比聚集索引更多一些,由于整个篇幅比较大涉及接下来的要写的“包含列的索引”,“索引碎片”等 ...

  8. 动态规划(DP),模拟

    题目链接:http://poj.org/problem?id=1088 Memory: 252KTime: 16MSLanguage: C++Result: Accepted 解题报告: 1.lm[i ...

  9. Winform自定义分页控件的实现

    实现效果 有点丑陋 但是功能是没问题的 测试过 实现思路 先创建一个用户控件 代码实现 public partial class PagerControl : UserControl { ; /// ...

  10. 通过PowerShell查看Android端log信息

    在Windows下我们可以通过在cmd中输入adb logcat相关命令来查看安卓设备上的log信息,这在PowerShell里也可以做到.所以方便做成一个脚本,以便复用.代码如下: function ...