【防盗链】Nginx与Apache 防盗链教程

一、为什么要用防盗链?

什么是盗链?

一般情况下,别的网站如果直接链接虚拟主机中的网页,是可以提高网站的知名度与访问量,是受到ICP内容提供商或站长的欢迎的,但是,如果别的网站是偷偷直接链接您的网站中的音乐、电影、图片、zip文件及其它下载类资源,让网民免费看你的电影,不但不会提高您网站的知名度,还会让您的网站中产生大量没有意义的流量,如果一台服务器中存在大量这种盗链情况,服务器的速度就会下降。    

从ICP内容提供商或站长的角度来看,辛辛苦苦做出来的内容,被别人偷偷使用,肯定心中不好受,显然,这种盗链是侵犯知识产权的行为。对于收费的下载类网站,这意味着有人可以不付费就享受您的服务!更严重的是,许多虚拟主机提供商是用“IIS连接数”来分配服务器资源给每一个虚拟主机使用的,盗链发生时,明显就是产生了没有意义的“IIS连接”。 开启防盗链服务组件,这在服务器上进行了设置,用户无须作任何操作

二、Ngnix 如何使用防盗链? 

1、找到我们的Ngnix配置文件ngnix.conf然后加入以下代码:

linux 下如何找到ngnix配置文件 ps -ef | grep nginx

image.png

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错误代码
  }
}

image.png

然后记得重启我们的ngnix服务

找到我们的ngnix路径然后使用命令:/usr/local/nginx/sbin/nginx -s reload

image.png

三、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地址,则走这一步

image.png

四、我们进行测试一下防盗链是否生效

比如我在本地的项目里的一个html加载一张图片(url为month.com域名下的某一张图片,也就是可以盗链的域名或IP地址)

本地项目示例,随便找一个静态页,配置该静态页域名为day10.com,然后在改页面中引入我的month.com项目下图片 

image.png

这时候我们访问一下这个域名下的这个页面记得一定要强制刷新一下 Ctrl+f5

image.png

如果不是我们可以盗链的域名或IP地址,则访问的效果是我们重定向的图片,则防盗链生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值