使用Nginx配置实现图片防盗链

nginx防盗链配置

    • nginx防盗链配置
    • nginx防盗链配置说明

nginx防盗链配置

有些时候,大家不想让别人调用自己的图片,一是因为个人版权的问题,再一点就是会增加服务器的负载、还会产生一些没必要的流量。

其实在Nginx里面,很容易就做到防盗链的,在nginx.conf文件加入一个localtion配置项。

下面请看配置:

location ~ .*\.(jpg|jpeg|JPG|png|gif|icon)$ {
        valid_referers blocked www.qipa250.com qipa250.com;
        if ($invalid_referer) {
            return 404;
        }
}

gif|jpg|jpeg|….,这些是你想要屏蔽的文件类型,可以根据情况修改。

只需要把文中 www.qipa250.com qipa250.com 修改为你允许显示你网站图片的其他网站域名,注意中间用空格分开,而不是逗号。

这样直接返回的是404页面。也可以用http://domain.com/404.jpg,显示给盗链者看到的图片,注意不要放到自己的域名上,因为放盗链的作用,那样对方是看不到的,可以上传到一些支持外联的网络相册上。

当然了,也可以设置某个目录防盗链,只需把localtion匹配的改成一个目录就可以了,比如:

location ~ ^/images/ {
valid_referers none blocked www.qipa250.com qipa250.com;
if ($invalid_referer) {
return 404;
}
#rewrite ^/ http://otherdomin.com/404.jpg;
}

这样就对images这个目录设置防盗链了。

nginx防盗链配置说明

说明:如果valid_referers条件判断未通过,nginx则会赋值invalid_referer 为true

语法:valid_referers

none | blocked | server_names | string…

参数说明:

none不允许“Referer”来源头部为空的情况

blocked “Referer”不为空,但是里面的值被代理或者防火墙删除了,这些值都不以http://或者https://开头,而是“Referer: XXXXXXX”这种形式

server_names “Referer”来源头部包含当前的server_names(当前域名)

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

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

valid_referers none blocked *.qipa250.com qipa250.com;

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

rewrite ^/ http://www.qipa250.com/static/images/404.jpg;

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

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

我们来看这一行:valid_referers none blocked *.qipa250.com qipa250.com;

valid_referers 里多了“none blocked”

我们把“none blocked”删掉,改成

valid_referers *.qipa250.com qipa250.com;

nginx彻底地实现真正意义上的防盗链完整的代码应该是这样的:

location ~* \.(gif|jpg|png|jpeg)$ {
	expires     30d;
	valid_referers *.qipa250.com www.qipa250.com m.qipa250.com;
	if ($invalid_referer) {
	rewrite ^/ http://ww4.sinaimg.cn/bmiddle/051bbed1gw1egjc4xl7srj20cm08aaa6.jpg;
	#return 404;
	}
	}

这样您在浏览器直接输入图片地址就不会再显示图片出来了,也不可能会再右键另存什么的。

rewrite ^/ http://www.qipa250.com/static/images/404.jpg;

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

rewrite ^/ http://www.qipa250.com/static/images/404.jpg;

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

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

这样,当别人输入文件下载地址,由于防盗链下载的作用就会跳转到您设置的这个链接!

最后,配置文件设置完成别忘记重启nginx生效!

http://www.qipa250.com/article-15345.html

你可能感兴趣的:(Php,Linux,Nginx)