盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。
比如:在一个网站中,直接使用另一个网站的域名加载显示另一个网站下的静态资源比如图片,就是盗链(盗用链接)。
开发时需要对自己的服务器网站,进行“防盗链”,以免加重自己服务器的访问压力。
防盗链的实现,本质也是利用web服务器(apache)的url重写机制。
rewrite模块
如果请求地址中包含图片的后缀(jpg|png|gif|jpeg等),就认为是在访问图片。
自己域名下发起请求,可以访问到图片,其他域名下发起请求,不能访问到图片。
在分布式配置文件下;限定重写规则;
在实际开发中,关于用真静态,还是伪静态根实际情况相关,各有优劣。
nginx防盗链指令
语法: referer_hash_bucket_size size;
默认值: referer_hash_bucket_size 64;
配置段: server, location
nginx模块ngx_http_referer_module通常用于阻挡来源非法的域名请求.我们应该牢记,
伪装Referer头部是非常简单的事情,所以这个模块只能用于阻止大部分非法请求
有些合法的请求是不会带referer来源头部的,所以有时候不要拒绝来源头部(referer)为空的请求.