secure_link模块介绍
ngx_http_secure_link_module是nginx内置的一个防盗链模块
使用这个模块,可以有效的防止文件被其他网站盗用.
有效防止服务器流量流失.
secure_link模块如何启用
编译时加入以下参数(0.7.18后版本可用)
--with-http_secure_link_module
nginx设置secure_link
location / {
secure_link $arg_md5,$arg_expires; #设置两个变量
secure_link_md5 "key$remote_addr$arg_expires"; #设置md5,当作口令
if ($secure_link = "") {
return 403;
}
if ($secure_link = "0") {
return 410;
}
}
网站生成口令设置[php为例]
$secret = 'key'; // key,自定义秘钥
$ipip=$_SERVER["REMOTE_ADDR"];
$expires = time()+300; //这里是300妙内访问有效
$md5 = base64_encode(md5($secret . $ipip . $expires, true)); // MD5生成
$md5 = strtr($md5, '+/', '-_'); // + and / 替换掉
$md5 = str_replace('=', '', $md5); // 替换=
$url = "http://domain.com/test.zip?md5=$md5&expires=$expires"; //安全下载链接demo设置
$arr = array("url"=>$url, "expires"=>date("Y-m-d H:i:s", $expires), "md5"=>$md5);
echo json_encode($arr); //json格式输出