防盗链原理和实现。
域名A的资源文件,经常被域名B直接调用访问。
而用户经常访问域名B,看到的资源(图片等)以为是域名B的,实际则是域名A的。
但是域名A没有获得任何收益,却要给域名B来源的访问消耗服务器资源和带宽。
所以,禁止域名B直接访问和调用域名A的资源的方式,就被称为"防盗链"。
bash
语法:
定义允许访问的域名来源
valid_referers none blocked servername
none blocked 没有referer的情况,直接访问资源的情况
if ($invalid_referer) {}
案例:
1)在IP的虚拟机,静态文件调用图片。
ip虚拟主机目录建立静态文件访问shop虚拟主机的图片资源。
bash
shell > cd /usr/local/nginx/html
shell > echo '<img src="http://www.shop.com/static/home/img/2.jpg" />' >> img.html
2)在shop虚拟机中,配置防止其他虚拟机盗链。
测试:
重新进行配置,专门针对图片来源进行限制。其他要是做现职,我们自己都访问不了。