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

简介: 一、为什么要用防盗链?什么是盗链?一般情况下,别的网站如果直接链接虚拟主机中的网页,是可以提高网站的知名度与访问量,是受到ICP内容提供商或站长的欢迎的,但是,如果别的网站是偷偷直接链接您的网站中的音乐、电影、图片、zip文件及其它下载类资源,让网民免费看你的电影,不但不会提高您网站的知名度,还会让您的网站中产生大量没有意义的流量,如果一台服务器中存在大量这种盗链情况,服务器的速度就会下降。    从ICP内容提供商或站长的角度来看,辛辛苦苦做出来的内容,被别人偷偷使用,肯定心中不好受,显然,这种盗链是侵犯知识产权的行为。对于收费的下载类网站,这意味着有人可以不付费就享受您的服务!更严重

一、为什么要用防盗链?


什么是盗链?


一般情况下,别的网站如果直接链接虚拟主机中的网页,是可以提高网站的知名度与访问量,是受到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地址,则访问的效果是我们重定向的图片,则防盗链生效


相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
2月前
|
Kubernetes 应用服务中间件 nginx
百度搜索:蓝易云【使用Kubernetes部署Nginx应用教程】
现在,你已经成功在Kubernetes集群上部署了Nginx应用。通过访问Service的外部IP地址,你可以访问Nginx服务。
42 4
|
2月前
|
Java 应用服务中间件 Apache
简介Nginx,Tomcat和 Apache
简介Nginx,Tomcat和 Apache
简介Nginx,Tomcat和 Apache
|
3月前
|
负载均衡 应用服务中间件 nginx
百度搜索:蓝易云【Nginx和tomcat实现负载均衡教程】
至此,你已经成功地使用Nginx和Tomcat实现了负载均衡。Nginx将根据配置的负载均衡策略将客户端请求分发到多个Tomcat服务器上,以提高系统的性能和可用性。请注意,在实际生产环境中,还需要进行其他配置和优化,如健康检查、会话保持等,以满足具体的需求。
34 0
|
3月前
|
安全 应用服务中间件 nginx
百度搜索:蓝易云【使用Debian、Docker和Nginx部署Web应用教程】
这些是在Debian上使用Docker和Nginx部署Web应用的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
45 0
|
3月前
|
负载均衡 安全 前端开发
百度搜索:蓝易云【Nginx与Tomcat负载均衡-动静分离教程】
这些是将Nginx与Tomcat结合使用实现负载均衡和动静分离的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
49 1
|
4月前
|
前端开发 Java Apache
Apache Zeppelin系列教程第七篇——运行paragraph的整个流程分析
Apache Zeppelin系列教程第七篇——运行paragraph的整个流程分析
35 0
|
4月前
|
SQL Java 数据库连接
Apache Zeppelin系列教程第四篇——JDBCInterpreter原理分析
Apache Zeppelin系列教程第四篇——JDBCInterpreter原理分析
33 0
|
4月前
|
SQL Java 数据库连接
Apache Zeppelin系列教程第十篇——SQL Debug In Zeppelin
Apache Zeppelin系列教程第十篇——SQL Debug In Zeppelin
51 0
|
4月前
|
算法 NoSQL Java
Apache Zeppelin系列教程第八篇——LRU算法在Apache Zeppelin中的应用
Apache Zeppelin系列教程第八篇——LRU算法在Apache Zeppelin中的应用
32 0
|
4月前
|
Java 数据库连接 Shell
Apache Zeppelin系列教程第六篇——Zengine调用Interpreter原理分析
Apache Zeppelin系列教程第六篇——Zengine调用Interpreter原理分析
46 0

推荐镜像

更多