Nginx防盗链

一:全站图片的防盗链

在nginx.conf的server段添加

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
valid_referers  *.lijun926.com lijun926.com;
if ($invalid_referer)
{
rewrite ^/ http://www.test.com/403.jpg;
#return 403;
}

expires 30d;
}

请确保server段中只有一个location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$,否则可能导致代码无效.

说明:

第一行:location ~ .*\.(gif|jpeg|png|bmp|swf)$

   其中的”gif|jpeg|png|bmp|swf”表示设置的防盗链文件类型,根据实际情况修改,每个后面使用”|”分开.

第三行:valid_referers none blocked *.lijun926.com lijun926.com

  类似一个白名单的概念,允许文件链出的域名名单,域名和域名之间空格隔开哦

  none 意为不存在的Referer头(表示空的,也就是直接访问,比如直接在浏览器打开一个图片)
  blocked 意为根据防火墙伪装Referer头,如:“Referer: XXXXXXX”。

  server_names 为一个或多个服务器的列表,0.5.33版本以后可以在名称中使用“*”通配符

   rewrite ^/ http://www.test.com/403.jpg;这个图片是盗链返回的图片,这个图片要放置在没有设置防盗链的网站上,不然这个图片也因为设置了防盗链的原因一样显示不出来的,只能显示“X”符号。

  如果保留有“none blocked”还没真正意义的防盗链。把“none blocked”删除,这样通过直接访问图片的URL才不会被下载。

二:针对图片目录防止盗链

location /images/ {
alias /opt/images/;
valid_referers none blocked server_names *.lijun926.com lijun926.com;
if ($invalid_referer) {return 403;}
}

此条目发表在Nginx分类目录。将固定链接加入收藏夹。