nginx 搭建flv流媒体服务器并做accesskey 防盗链

yanghan 2012-12-27

http://www.peifi.com/519.html

nginx 搭建flv流媒体服务器并做accesskey 防盗链

A:平滑升级

wgethttp://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download

tarzxvfyamdi-1.4.tar.gz

cdyamdi-1.4

make&&makeinstall

http://nginx.org/download/nginx-1.0.5.tar.gz

mkdir-p/usr/local/nginx/html/flv_file

wgethttp://www.ieesee.net:8080/~uingei/nginx-accesskey-2.0.3.diff.bz2

bzcat../nginx-accesskey-2.0.3.diff.bz2|patch-p1

./configure–user=www–group=www–prefix=/usr/local/nginx–with-http_stub_status_module–with-http_ssl_module–with-http_sub_module–with-md5=/usr/lib–with-sha1=/usr/lib–with-http_gzip_static_module–with-http_flv_module–with-cc=gcc–with-cc-opt=”-O3″–with-http_accesskey_module

make-j8

cpobjs/nginx/usr/local/nginx/sbin

makeupgrade

此时已完成平滑升级并加入flv和accesskey模板;

B:accesskey的配置

接下来可以配置nginx.conf要注意路径格式root字段写在server里在根据root路径添加防盗链路径。

默认里只需加入个location/dowmload{#/download改为自己做链的路径

accesskeyon;#此处代表启用

accesskey_hashmethodmd5;#加密方法可以是MD5或者SHA-1

accesskey_arg”key”;#url中的关键字参数

accesskey_signature”ww$remote_addr”;#为加密值,此处为ww和访问IP构成的字符串

}

访问测试格式ip/file.rar?key=b463bb3dbf6b102de554f5fa47fbe6fd

C:flv播放器

location/{

limit_rate_after5m;#在flv视频文件下载了5m开始限速

limit_rate512k;#速度限制为512K

charsetutf-8;

location~\.flv{

flv;

}

}

设置完毕后测试的时候还需要一个支持拖拽的flash播放器。开源的JWplayer就可以实现这样的功能,

下载链接http://blogimg.chinaunix.net/blog/upfile2/100607142612.rar

当然大家也可以去官网下载未编译的或自己编译的;下载播放器后。上传到上面设置的/usr/local/nginx/html/flv_file/目录下,把flv视频文件也放到该目录下

启动nginx后测试:

 http://192.168.1.214/pl.swf?type=http&file=wcwrs.flv 

说明:#我的ip是192.168.1.214

#player.swf是我的JWPlayer播放器名字

#http是表示居于http分发方式

  #wcwrs.flv是我的flv视频文件

D:结合

location/{

indexindex.htmlindex.htmindex.php;

limit_rate_after5m;

limit_rate512k;

charsetutf-8;

location~\.flv{

accesskeyon;

accesskey_hashmethodmd5;

accesskey_arg”key”;

accesskey_signature”ww$remote_addr”;

flv;

}

}

当然防盗链还有两种思路都是nginx自带功能:

一种:根据域名做判断

location~*\.(gif|jpg|png|swf|flv)${

valid_referersnoneblocked*.xxx.com;

if($invalid_referer){

#rewrite^/http://www.ingnix.com/retrun.html;

return404;

}

}

二种:根据目录做判断

location/images/{

alias/data/images/;

valid_referersnoneblockedserver_names*.xok.laxok.la;

if($invalid_referer){return403;}

}

根据需求可以结合方法灵活

相关推荐