nginx-accesskey使用记录

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加密值:

[email protected]:/home/www# echo -n password121.1.206.18|md5sum c7e2d8f498920f1a86e4c95d4a58a27e -

md5加密值为:c7e2d8f498920f1a86e4c95d4a58a27e

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

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

[email protected]:/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文件

[email protected]:/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

[email protected]:/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有关的,这样就可以避免被盗链了。

时间: 2024-10-27 19:07:03

nginx-accesskey使用记录的相关文章

Nginx安装问题记录

安装时遇到了2个问题,特此记录下. 问题1:Public key for *.rpm is not installed 解决方法:在repo文件中加上"gpgcheck=0",默认没有这一项,看来系统默认是要check的,这个还是头一次知道. 问题2:./configure: error: the HTTP rewrite module requires the PCRE library 解决方法:yum -y install openssl openssl-devel Nginx安装

nginx日志不记录静态文件访问和缓存

nginx访问日志nginx和apache的访问日志一样可以记录的指定信息,如记录服务器时间,访问的客户端ip.访问的url和访问状态码等信息,这些信息会规律的记录到访问日志中主配置文件中定义的日志格式,记录的格式参数解释如下 $remote_addr ? ? ? ? ? ? ? ? ? 客户端访问IP(公网IP) $http_x_forwarded_for ? ? ? ? ? 记录代理服务器的IP $time_local ? ? ? ? ? ? ? ? ? ? 日志中服务器本地时间 $host

【Ubuntu14】Nginx+PHP5+Mysql记录

这次因为工作原因,需要在Linux下进行开发.推荐的环境是Ubuntu14+Nginx+PHP+Mysql.环境搭建好之后,装上GIT,装上IDE,觉得Mysql命令界面麻烦又装了个Navicat.总体用下来感觉很带感. [虚拟机与镜像文件] 这里我采用的虚拟机是VMware11.别的虚拟机也类似大同小异. Ubuntu采用的是ubuntu-14.04.3 32位.这里提供一个下载地址,如果失效了可以留言给我再开. http://pan.baidu.com/s/1pKhXWIf [操作前的几个建

一次用bash+python分析NGINX日志的记录

目标: 按文章类型分别统计文章PV,并按PV倒序显示 分析: 从NGINX日志按URL特征可以取出所有文章页URL,并从URL中得到ID 拿ID到数据库中可查询出文章所属类型type 具体操作: 从日志中取出所有详情页URL特征片段,并排重统计每个文章的访问量,将结果另存为m1214.cnt cat access.log | grep -o "GET http://www.***.com/content.* HTTP" | grep -Po "\d(/.*\.html)&qu

Nginx Rewrite规则记录

Rewrite 是一种服务器的重写脉冲技术,它可以使得服务器可以支持 URL 重写,是一种最新流行的服务器技术.它还可以实现限制特定IP访问网站的功能.很多情况下,某个 IP 的访问很容易造成 CPU 100% (比如 某些搜索引擎的固定抓取,别人大量的采集站点),这个时候我们就要利用一些有效的手段封掉对方的 IP,让他无法消耗服务器的资源,封 IP 的方法有很多种,如果你的 Web(Nginx|Apache|other) 服务器安装了 Rewrite 模块的话,也可以试试利用 Rewrite

Nginx 日志中记录cookie

因开发要求,在Nginx日志中需要记录Cookie信息,以便开发查询系统发生了什么,我的日志是以json格式显示,需要在nginx.conf文件中添加如下信息: 1,#vim  nginx.conf http {    include       mime.types;    default_type  application/octet-stream;   log_format logstash_json '{"@timestamp":"$time_iso8601"

nginx问题相关记录

nginx目前主要用来做反向代理和负载均衡,其实它也可以是一个web服务器: 1.反向代理: location /api/ { proxy_next_upstream error timeout http_503 http_502 http_504; proxy_pass http://myweb1-server/api/; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwar

Nginx 小入门记录 之 初识Nginx和环境准备(一)

前置知识准备: 如果还不知道服务器是干什么的,只是刚踏入程序员之路的,大家还是先学习基础,虽然以下文档很简单,但至少知道为什么要学: 一般服务器环境现在基本上都是放在Linux系统上了,如果对Linux还不熟的,可以先学习Linux入门就行了: 如果只是想单纯用Windows下联系的,其实本质和Linux环境是一样的,可以参考完成,这样可以减少Linux的学习了:  前言 Nginx 是当前很火很火的服务器,如果不了解,但至少也听说过,如果没有听说过,那赶紧开始动起来吧,教程很多很多,如下: 1

nginx安装配置记录

文章出处:http://blog.csdn.net/lili72 环境cenos5.9 安装在192.168.119.131上进行.安装路径统一为/home/bigdata/ 1 安装之前需要先安装: 1.1 openssl 1.1.1 下载 ,cd /home/bigdata/   wget  http://www.openssl.org/source/openssl-1.0.0a.tar.gz 解压:   tar  -xvf  openssl-1.0.0a.tar.gz mv  openss

nginx + awstats 部署记录

版本:Tengine/2.2.0 (nginx/1.8.1)awstats-7.6 一.安装Tengine 与 环境 1.下载安装包,并编译安装 tar -zxvf tengine-2.2.0.tar.gz cd tengine-2.2.0 ./configure --prefix=/usr/local/nginx make make install 2.修改Nginx日志格式为: 注释掉tengine自带的格式 log_format main '$remote_addr - $remote_u