您现在的位置是:群英 > 服务器 > 系统运维
nginx配置防盗链的方法有哪些?
Admin发表于 2022-11-23 16:03:44978 次浏览
这篇文章分享给大家的内容是关于nginx配置防盗链的方法有哪些?,本文介绍得很详细,内容有一定的参考价值,能帮助大家进一步学习和理解“nginx配置防盗链的方法有哪些?”,有这方面学习需要的朋友可以看看,接下来就让小编带领大家一起来学习一下吧。

什么是资源盗链

资源盗链是指内容不在自己服务器上,而通过技术手段,绕过别人的限制,将别人的内容,比如热门的图片放到自己页面上,展示给用户,以此来盗取别人网站的流量,即蹭流量。

简而言之就是用别人的东西成就自己的网站

如下,分别在网上找的两个图片,可以直接在浏览器中打开这2个链接

一、引导案例

接下来,利用上面的这两个图片链接,我们在nginx的资源目录下,创建一个html页面,将这两张图片的链接设置进去

如下有一个 a.html的页面

在a.html的页面中引用上面两个图片链接,内容如下:

启动nginx服务,然后浏览器上访问a.html页面,观察图片展示的效果

从展示的效果来看,第一张图片可以正常展示,而第二张图片则无法显示,也就是说,第二张图片的地址添加了防止盗链的功能;

二、Nginx防盗链实现原理

了解防盗链的原理之前,需要了解一下HTTP的头信息Referer这个参数;

当浏览器向web服务器发送请求的时候,一般都会带上Referer,来告诉浏览器该网页是从哪个页面链接过来的;

后台服务器根据获取到的这个Referer信息,从而判断是否为自己信任的网站地址,如果是则放行继续访问,如果不是则可以返回403(服务端拒绝访问)的状态信息)

在本地模拟上述的服务器效果如下:

三、Nginx防盗链具体实现

valid_referers

  • nginx会通过查看referer自动和valid_referers后面的内容进行匹配;
  • 如果匹配到了就将i n v a l i d r e f e r e r 变 量 置 0 , 如 果 没 有 匹 配 到 ,则将invalid_referer变量置为1;
  • 匹配的过程中不区分大小写;

其他参数介绍:

  • none:如果Header中的Referer为空,允许访问;
  • blocked:在Header中的Referer不为空,但是该值被防火墙或代理进行伪装过,如不带"http://" 、"https://"等协议头的资源允许访问;
  • server_names:指定具体的域名或者IP;
  • string: 可以支持正则表达式和*的字符串。如果是正则表达式,需要以~
    开头表示

实现方式一

1、在nginx的html目录下创建一个images的目录

2、在nginx.conf中添加如下配置

3、重启nginx,访问下这张图片

4、将这个图片的路径也配置到上面的 a.html中

5、重启nginx之后再次访问a.html,可以正常访问

为了实现防盗链功能,只需要在上面的nginx.conf配置中添加如下内容

添加完毕,重启nginx,再次访问该页面,这时候可以看到,图片就无法再访问了,这就实现了防盗链的功能

实现方式二

针对整个目录进行设置

如果要设置的图片很多的话,还可以针对整个目录进行设置,可以参考如下:

然后在自定义的a.html中修改下图片的路径即可

再次访问页面,也能达到上面的效果

实现方式三

从上面的效果来看,确实达到了防止盗链,但是在实际应用中,希望那些未展示出来的图片显示的更加友好点,可以结合rewrite的方式来做,下面来看具体的实现步骤

1、在网上找一张图片并放到images目录下

效果如下

2、修改nginx.conf配置文件

关键配置信息如下,即将原来的返回403,使用rewrite指向特定的图片即可

修改完毕后重启nginx服务,再次访问上面的路径,可以看到下面的效果

这样也实现了防盗链的效果

总结



通过以上内容的阐述,相信大家对“nginx配置防盗链的方法有哪些?”已经有了进一步的了解,更多相关的问题,欢迎关注群英网络或到群英官网咨询客服。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

相关信息推荐
2023-07-07 11:51:26 
摘要:centos下使用fdisk命令
2023-07-07 11:26:51 
摘要:CentOS7 搭建LVS+keepalived负载均衡
2022-12-07 17:56:01 
摘要:netty怎样实现tomcat,详细代码是什么?有不少朋友对此感兴趣,下面小编给大家整理和分享了相关知识和资料,易于大家学习和理解,有需要的朋友可以借鉴参考,下面我们一起来了解一下吧。
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部