nginx 搭建flv流媒体服务器并做accesskey 防盗链
http://www.peifi.com/519.html
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;}
}
根据需求可以结合方法灵活