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

本文涉及的产品
.cn 域名,1个 12个月
简介: 一、为什么要用防盗链?什么是盗链?一般情况下,别的网站如果直接链接虚拟主机中的网页,是可以提高网站的知名度与访问量,是受到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地址,则访问的效果是我们重定向的图片,则防盗链生效


相关文章
|
1月前
|
缓存 前端开发 应用服务中间件
CORS跨域+Nginx配置、Apache配置
CORS跨域+Nginx配置、Apache配置
131 7
|
1月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
1月前
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
1月前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
80 0
Mac os 安装 nginx 教程(success)
|
2月前
|
Java API Apache
从零到英雄的蜕变:如何用Apache Wicket打造你的第一个Web应用——不仅是教程,更是编程之旅的启航
【9月更文挑战第4天】学习Apache Wicket这一开源Java Web应用框架是一段激动人心的旅程。本文将指导你通过Maven搭建环境,并创建首个“Hello, World!”应用。从配置`pom.xml`到实现`HelloWorldApplication`类,再到`web.xml`的设置,一步步教你构建与部署简单网页。适合初学者快速上手,体验其简洁API与强大组件化设计的魅力。
58 1
|
3月前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何配置Web服务器(如Apache或Nginx)?
在Linux中,如何配置Web服务器(如Apache或Nginx)?
|
3月前
|
Web App开发 应用服务中间件 网络安全
如何在 Apache 和 Nginx 上配置 OCSP Stapling
如何在 Apache 和 Nginx 上配置 OCSP Stapling
95 8
|
3月前
|
负载均衡 应用服务中间件 Apache
Nginx与Apache的终极对决:揭秘Web服务器界的“速度与激情”!你不可不知的性能霸主如何颠覆传统,震撼互联网的根基!
【8月更文挑战第13天】互联网技术发展中,Web服务器至关重要,Nginx与Apache是最广泛使用的两种。Apache历史悠久,但Nginx以轻量级和高性能脱颖而出。Nginx采用事件驱动架构,高效处理大量并发连接,而Apache使用进程驱动,高并发下资源消耗大。以餐厅为例,Nginx像大堂经理同时处理多个顾客需求,远比Apache为每位顾客分配服务员更高效。性能测试显示Nginx处理能力远超Apache。此外,Nginx配置简洁灵活,尤其在负载均衡方面表现突出。尽管Apache适合动态内容处理,但在快速变化的互联网环境中,Nginx因其独特优势成为许多开发者和企业的首选。
65 7
|
3月前
|
应用服务中间件 Linux 网络安全
在Linux中,如何配置Apache或Nginx Web服务器?
在Linux中,如何配置Apache或Nginx Web服务器?
|
3月前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何查看Apache或Nginx服务的状态?
在Linux中,如何查看Apache或Nginx服务的状态?