您的位置:首页 > 运维架构 > Nginx

nginx accesskey防盗链系统配置

2011-08-25 17:43 295 查看
[/i]

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;}

}

根据需求可以结合 方法灵活
本文出自 “IT搬运工” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: