使用nginx的第三方模块Http-Access-Key
这个模块可以阻止所有URL中未包含合法访问令牌的访问(防盗链)。访问令牌可以由访问者IP或者其它服务器变量生成,所以可以很好地控制客户端的下载行为。
用户得到的下载地址可能像这样: http://example.com/download/file.zip?key=09093abeac094
1、下载、解压
wget http://wiki.nginx.org/File:Nginx-accesskey-2.0.3.tar.gz
tar zxvf Nginx-accesskey-2.0.3.tar.gz
2、安装
然后编辑 “config” 文件,将 “$HTTP_ACCESSKEY_MODULE” 用 “ngx_http_accesskey_module” 替换。然后编译:
./configure --add-module=path/to/nginx-accesskey
3、配置
修改nginx.conf
location /download {
accesskey on;
accesskey_hashmethod md5;
accesskey_arg "key";
accesskey_signature "mypass$remote_addr";
}
php端:
// some code
$url = $filePath.'?'.md5($mypass.$_SERVER['REMOTE_ADDR']);
完成,可以使用了
注:lighttpd也有相应模块,并能进行通过时间戳的有效期验证