一、为什么要用防盗链?
什么是盗链?
一般情况下,别的网站如果直接链接虚拟主机中的网页,是可以提高网站的知名度与访问量,是受到ICP内容提供商或站长的欢迎的,但是,如果别的网站是偷偷直接链接您的网站中的音乐、电影、图片、zip文件及其它下载类资源,让网民免费看你的电影,不但不会提高您网站的知名度,还会让您的网站中产生大量没有意义的流量,如果一台服务器中存在大量这种盗链情况,服务器的速度就会下降。
从ICP内容提供商或站长的角度来看,辛辛苦苦做出来的内容,被别人偷偷使用,肯定心中不好受,显然,这种盗链是侵犯知识产权的行为。对于收费的下载类网站,这意味着有人可以不付费就享受您的服务!更严重的是,许多虚拟主机提供商是用“IIS连接数”来分配服务器资源给每一个虚拟主机使用的,盗链发生时,明显就是产生了没有意义的“IIS连接”。 开启防盗链服务组件,这在服务器上进行了设置,用户无须作任何操作
二、Ngnix 如何使用防盗链?
1、找到我们的Ngnix配置文件ngnix.conf
然后加入以下代码:
linux 下如何找到ngnix配置文件 ps -ef | grep nginx
网络异常,图片无法展示
|
location ~* \.(gif|jpg|png|swf|flv)$ { #需要防盗链资源的文件类型 valid_referers *.lishuo.net lishuo.net; #这是可以盗链的域名或IP地址,一般情况可以把csdn.net,juejin.cn等域名放进来 if ($invalid_referer) { #这样设置能够防盗链,不断地302重定向很多次,可能会加重服务器的负担,所以不建议这么做,除非有单独的图片服务器支持 #rewrite ^/ https://dss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1201024306,578860947&fm=26&gp=0.jpg; #如果有人非法盗链资源,则返回一张防盗链的图片 return 403; #或者返回403错误代码 } } 复制代码
网络异常,图片无法展示
|
然后记得重启我们的ngnix服务
找到我们的ngnix路径然后使用命令:/usr/local/nginx/sbin/nginx -s reload
网络异常,图片无法展示
|
三、Apache如何使用防盗链
以ThinkPHP5.0为例,我们把防盗链配置信息写在public下的.htaccess文件里
RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ [NC] RewriteCond %{HTTP_REFERER} !month.com [NC] #这是可以盗链的域名或IP地址 RewriteRule .*\.(jpg|png|jpgrar|zip)$ https://dss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3566088443,3713209594&fm=26&gp=0.jpg [R,NC,L] #如果不符合盗链的域名或IP地址,则走这一步 复制代码
网络异常,图片无法展示
|
四、我们进行测试一下防盗链是否生效
比如我在本地的项目里的一个html加载一张图片(url为month.com域名下的某一张图片,也就是可以盗链的域名或IP地址)
本地项目示例,随便找一个静态页,配置该静态页域名为day10.com,然后在改页面中引入我的month.com项目下图片
网络异常,图片无法展示
|
这时候我们访问一下这个域名下的这个页面记得一定要强制刷新一下 Ctrl+f5
网络异常,图片无法展示
|
如果不是我们可以盗链的域名或IP地址,则访问的效果是我们重定向的图片,则防盗链生效