nginx服务器防盗链配置,防止第三方盗用连接和资源

我来纠错
对于那个被利用了资源的网站是不公平的。一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担。
如何在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的时候防盗链忽略。
发送
热门关键词:
命令
知识类型:
标题描述:
详细解答:

提交审核您编辑的知识会经过 前端大牛 人工审核。