打开对应站点的conf配置文件,主要配置代码如下:
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
valid_referers none blocked *.XXXXX.com;//许可的网站
if ($invalid_referer) {
rewrite ^/ http://www.XXXXX.com/error.jpg; #重定向的新图片网址
#return 403; #403错误
}
expires 30d;
}
valid_referers指定资源访问是通过以下几种方式为合法,即白名单,允许文件链出的域名白名单。
none:直接通过url访问,无referer值的情况;
blocked:referer值被防火墙修改;
if判断如果用户请求的资源不符合上述配置,那么rewrite重定向到你想指定的url上,也可以配置403权限错误。
如果把 valid_referers none blocked 的none blocked 去掉就是:直接在浏览器地址栏中输入对应的图片地址也会被拒绝访问。
注:如果图片使用了CDN,那么在nginx上的防盗链就不起作用了,可以找CDN运营商,他们会有一整套资源防盗链方法,大多在CDN管理平台直接设置即可,比如阿里云CDN,其原理也是判断referer。