http://www.peifi.com/519.html
A:平滑升级
wget http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download
tar zxvf yamdi-1.4.tar.gz
cd yamdi-1.4
make && make install
http://nginx.org/download/nginx-1.0.5.tar.gz
mkdir -p /usr/local/nginx/html/flv_file
wget http://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
cp objs/nginx /usr/local/nginx/sbin
make upgrade
此时已完成平滑升级并加入flv和accesskey模板;
B: accesskey的配置
接下来可以配置nginx.conf 要注意路径格式 root 字段写在 server里 在根据root路径添加防盗链路径。
默认里只需加入个location /dowmload { #/download 改为自己做链的路径
accesskey on; #此处代表启用
accesskey_hashmethod md5; #加密方法可以是MD5或者SHA-1
accesskey_arg ”key”; #url中的关键字参数
accesskey_signature ”ww$remote_addr”; #为加密值,此处为ww和访问IP构成的字符串
}
访问测试格式ip/file.rar?key=b463bb3dbf6b102de554f5fa47fbe6fd
C:flv 播放器
location / {
limit_rate_after 5m; #在flv视频文件下载了5m开始限速
limit_rate 512k; #速度限制为512K
charset utf-8;
location ~\.flv {
flv;
}
}
设置完毕后测试的时候还需要一个支持拖拽的flash播放器。开源的JW player就可以实现这样的功能,
下载链接 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是我的JW Player播放器名字
#http是表示居于http分发方式
#wcwrs.flv是我的flv视频文件
D:结合
location / {
index index.html index.htm index.php ;
limit_rate_after 5m;
limit_rate 512k;
charset utf-8;
location ~\.flv {
accesskey on;
accesskey_hashmethod md5;
accesskey_arg ”key”;
accesskey_signature ”ww$remote_addr”;
flv;
}
}
当然防盗链还有两种思路 都是nginx自带功能:
一种:根据域名做判断
location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked *.xxx.com ;
if ($invalid_referer) {
#rewrite ^/ http://www.ingnix.com/retrun.html ;
return 404;
}
}
二种:根据目录做判断
location /images/ {
alias /data/images/;
valid_referers none blocked server_names *.xok.la xok.la ;
if ($invalid_referer) {return 403;}
}
根据需求可以结合 方法灵活