nginx服务器防盗链配置,防止第三方盗用连接和资源
分享知识http://www.fedrobots.com/?search=208658我来纠错对于那个被利用了资源的网站是不公平的。一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担。
如何在nginx下配置防盗链:
location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ {
valid_referers none blocked *.chaihongjun.me www.chaihongjun.me;
if ($invalid_referer) {
#rewrite ^/ http://chaihongjun.me/403.html;
return 403;
}
}
第一行表示对wma,wmv等文件防盗链
第二行判断来路,这里的域名可以根据实际情况设置,然后判断请求是不是来自设置的域名,如果不是则返回Http403。
这个是针对全站特定的文件格式,另外如果用户知道以上文件路径,直接在浏览器中访问以上文件的完整URL,则可以正常访问文件。如果希望用户即使知道资源路径,直接在浏览器输入完整URL,还是不能访问的话,需要这样设置:
location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ {
valid_referers *.chaihongjun.me www.chaihongjun.me;
if ($invalid_referer) {
#rewrite ^/ http://chaihongjun.me/403.html;
return 403;
}
}
其实就是把“none blocked”删除。
再来高级点的,如果希望开个后门,让google,baidu域名可以访问本站资源:
location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ {
valid_referers none blocked *.chaihongjun.me server_names ~\.google\. ~\.baidu\. ;
if ($invalid_referer) {
#rewrite ^/ http://chaihongjun.me/403.html;
return 403;
}
}
~是正则表达式,表示排除https://或http://开头的字符串
server_names Referer”来源头部包含当前的server_names(当前域名),当域名里面含有google,baidu的时候防盗链忽略。