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 /p_w_picpaths/ { alias /data/p_w_picpaths/; valid_referers none blocked server_names *.xok.la xok.la ; if ($invalid_referer) {return 403;} } 根据需求可以结合 方法灵活 |