nginx 图片防盗链 设置

打开对应站点的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。

 

原文地址:https://www.cnblogs.com/cocoqi/p/12463400.html