nginx使用secure_link模块防盗链

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格式输出
标签:Nginx 发布于:2019-10-29 04:42:24