一:一般的防盜鏈如下:
location ~* \.(gif|jpg|png|swf|flv)$ {??
?valid_referers none blocked www.jzxue.comjzxue.com;?
if ($invalid_referer) {? ?
?rewrite ^/ http://www.jzxue.com/retrun.html; #return 403;?
}?
}
第一行:gif|jpg|png|swf|flv?
表示對gif姿骏、jpg焕济、png骄呼、swf、flv后綴的文件實(shí)行防盜鏈?
第二行: 表示對www.ingnix.com這2個(gè)來路進(jìn)行判斷?
if{}里面內(nèi)容的意思是攘残,如果來路不是指定來思是,如果來路不是指定來路就跳轉(zhuǎn)到http://www.jzxue.com/retrun.html頁面对竣,當(dāng)然直接返回403也是可以的难衰。
二:針對圖片目錄防止盜鏈
location /images/{?
?alias /data/images/;??
?valid_referersnoneblocked server_names*.xok.la xok.la ;
if($invalid_referer)?
{
return403;
}
?}
三:使用第三方模塊ngx_http_accesskey_module實(shí)現(xiàn)Nginx防盜鏈?
實(shí)現(xiàn)方法如下:?
1. 下載NginxHttpAccessKeyModule模塊文件:http://wiki.nginx.org/File:Nginx-accesskey-2.0.3.tar.gz;?
2. 解壓此文件后,找到nginx-accesskey-2.0.3下的config文件祠汇。編輯此文件:替換其中的”$HTTP_ACCESSKEY_MODULE”為”ngx_http_accesskey_module”仍秤;?
3. 用一下參數(shù)重新編譯nginx:
./configure --add-module=path/to/nginx-accesskey<
上面需要加上原有到編譯參數(shù),然后執(zhí)行: make && make install
修改nginx的conf文件可很,添加以下幾行:
location /download {
accesskey? ?on;
accesskey_hashmethod md5;
accesskey_arg "key";
accesskey_signature "mypass$remote_addr";
}
其中:?
accesskey為模塊開關(guān)诗力;?
accesskey_hashmethod為加密方式MD5或者SHA-1;?
accesskey_arg為url中的關(guān)鍵字參數(shù)我抠;?
accesskey_signature為加密值苇本,此處為mypass和訪問IP構(gòu)成的字符串。?
訪問測試腳本download.php:
download_add_key
";$output_org_url="download_org_path
";echo$output_add_key;echo$output_org_url;?>
訪問第一個(gè)download_add_key鏈接可以正常下載菜拓,第二個(gè)鏈接download_org_path會(huì)返回403 Forbidden錯(cuò)誤瓣窄。?
參考:?
NginxHttpAccessKeyModule?
http://xok.la/2009/03/nginx_http_accesskey_module_referer.html