11
产品文档
控制台使用
基础类问题
应用类问题
网络类问题
安全类问题
常见问题
利用Nginx设置有效实现网站图片防盗链

目前原创性质的图文站,经常会遇到这样的问题:盗链。现在的采集软件特别多,可以通过制定一系列的规则,将别人网站上的资源下载到本地或同步到自己的网站上。为了防止其他站点直接从我们网站引用图片等链接,消耗我们服务器资源和网络流量,我们一般会对图片等资源做一些限制,比如打水印,防盗链设置等,本文主要结合Nginx来讲解如何设置图片防盗链。

打开对应站点的conf配置文件

如果您使用的是默认站点,修改 /usr/local/nginx/conf/nginx.conf 这个配置文件。

如果您新建了站点,那么修改/usr/local/nginx/conf/vhost/你的域名.conf 这个配置文件,找到:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
 expires      30d;
}


修改成

location ~* \.(gif|jpg|png|jpeg)$ {
    expires     30d;
        valid_referers *.zhiniaoyun.net www.zhiniaoyun.net;
    if ($invalid_referer) {
    rewrite ^/ http://www.xxx.com/img/404.jpg;
    #return 404;
    }
    }


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

其中“gif|jpg|jpeg|png|bmp|swf”设置防盗链文件类型,可以自行修改,每个后缀用“|”符号分开!

第三行:valid_referers  *.zhiniaoyun.net www.zhiniaoyun.net;

就是白名单,允许文件链出的域名白名单,自行修改成您的域名!*.zhiniaoyun.net这个指的是子域名,域名与域名之间使用空格隔开!

第五行:rewrite ^/ http://www.xxx.com/img/404.jpg;

这个图片是盗链返回的图片,也就是替换盗链网站所有盗链的图片。这个图片要放在没有设置防盗链的网站上,否则盗链者的网站所盗链图片会显示X符号。您也可以选择使用原有域名,设置其他类型图片,只要不在设置防盗链文件类型以内就可以。

注:第二行中valid_referers 后已经删除 none blocked ,删除none blocked两个关键词的目的是直接在浏览器地址栏中输入对应的图片地址也会被拒绝访问。

如果匹配到不属于设定的referer来源域,则返回403,或者重置到一个url地址上去,这样可以避免右键另存为的方式下载图片。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!