如何解决nginx服务器图片防盗链的问题和方法

 Nginx   高蒙   阅读(1900)   评论(0)   2016-08-27 15:59:54    nginx 防盗链 图片防盗链 


为什么,我会想到防图片盗链的问题呢?一来是真的有人盗链,增加我服务器的压力。二来,就是亲自尝试一下,防盗链能不能成功。网上的nginx防盗链教程很多,但是呢?真正的可以使用的并不多,而且有的防盗链的教程并不是真正彻底的防盗链。我们要求的图片防盗链是这样的。

一、别人网站加载我们的图片是无法显示的。

二、别人右键保存图片也是无效的。下载不了,我们的图片。

基本上,网上的教程第一个都可以轻松的实现,但是第二步骤真的很少有实现的。

那么,nginx应该怎么样彻底地实现真正意义上的防盗链呢?

第一、我们来看下nginx如何设置图片防盗链的方法。

如果您使用的是默认站点,也就是说,您的站点可以直接输入服务器IP访问的,使用root登录,修改 /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  *.shuchengxian.com www.shuchengxian.com;
    if ($invalid_referer) {
        rewrite ^/ http://www.shuchengxian.cn/404.jpg;
    }
}

代码解释:

第一行: 

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

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

第三行:

valid_referers  *.shuchengxian.com www.shuchengxian.com;

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

第五行:

rewrite ^/ http://www.shuchengxian.cn/404.jpg;

这个图片是盗链返回的图片,也就是替换盗链网站所有盗链的图片。

注意:

这个图片要放在没有设置防盗链的网站上,因为防盗链的作用,这个图片如果也放在防盗链网站上就会被当作防盗链显示不出来了,盗链者的网站所盗链图片会显示X符号。

这样设置差不多就可以起到防盗链作用了,上面说了,这样并不是彻底地实现真正意义上的防盗链!

一般上面的操作,基本就可以达到基础的nginx图片防盗链的效果了。

第二、nginx彻底地实现图片防盗链的设置方法:

第五行:

rewrite ^/  http://www.shuchengxian.cn/404.jpg;

这个是给图片防盗链设置的防盗链返回图片,如果我们是文件需要防盗链下载,把第五行:

rewrite ^/  http://www.shuchengxian.cn/404.jpg;

改成一个链接,可以是您主站的链接,比如把第五行改成:

rewrite ^/ http://www.shuchengxian.com;

这样,当别人输入文件下载地址,由于防盗链下载的作用就会跳转到您设置的这个链接!最后,配置文件设置完成别忘记重启nginx生效!





相关文章



我要评论


站长昵称:(*)

输入内容:


评论列表


高蒙

男,程序猿一枚

 

人生要是没有理想, 那跟一条咸鱼有什么分别。


关于我

  http://www.shuchengxian.com

高蒙个人博客是以PHP技术为主的程序员个人博客。博客主要发布php开发中遇到的问题以及解决办法,同时个人博客也分享网站模板素材,jquery插件等方面素材。


站点声明:相关侵权、举报、投诉及建议等,请发E-mail:936594075#qq.com(#替换成@)。

Copyright © 2018, www.shuchengxian.com, All rights reserved. 个人博客皖公网安备 34152302000022号 皖ICP备15015490号

关键词:个人博客,PHP博客,PHP博客程序,高蒙博客,高蒙个人博客,php程序员博客,程序员个人博客