Nginx--防盗链问题

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

一、什么是盗链

盗链是一种网络行为,指的是一个网站未经授权,直接使用另一个网站资源(如图片、视频、音乐、文件等)的链接地址,使得这些资源在未经允许的情况下被访问和使用。这种行为通常发生在内容提供商希望保护其资源不被他人非法使用的情况下。盗链可能会导致以下几个问题:

  • 宽带消耗
  • 版权侵犯
  • 广告收入损失
  • 服务滥用
  • 法律风险

二、防盗链

1、实现模块

Nginx 防盗链主要是通过ngx_http_referet_module模块实现的,该模块通过检查HTTP请求中的 Referer 头部来判断请求是否合法。如果请求中的 Referer与配置的规则不匹配,则可以返回403状态码,拒绝访问资源

2、防盗链配置

配置要点

 [root@nginx-server ~]# vim /etc/nginx/nginx.conf
 # 日志格式添加"$http_referer"
 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                 '$status $body_bytes_sent "$http_referer" '
                 '"$http_user_agent" "$http_x_forwarded_for"';
 # valid_referers 使用方式
 Syntax: valid_referers none | blocked | server_names | string ...;
 Default: —
 Context: server, location
  • none允许没有http_refer的请求访问资源
  • blocked:允许不是http://开头的,不带协议的请求访问资源--被防火墙过滤掉的
  • server_names:只允许指定ip/名来的请求访问资源(白名单

三、实验

1、环境准备

主机名ip地址说明
centos-210.0.0.3nginx服务器
centos-110.0.0.2nginx服务器,对centos-2进行盗链
centos-310.0.0.4nginx服务器,对centos-2进行盗

2、盗链配置

2.1、使用centos-2进行nginx服务发布:

 [root@centos-2 ~]# cat /etc/nginx/conf.d/default.conf 
 server {
         listen 80;
         server_name localhost;
         location ~ .*\.(gif|jpg|png|jpeg)$ {
                 root /usr/share/nginx/html;
                 index K8s.png;
         }
 }

浏览器测试访问:

2.2、在centos-1中对其进行盗链:

 [root@centos ~]# cat /usr/share/nginx/html/index.html 
 <html>
 <head>
     <meta charset="utf-8">     #用来做实验  红色的底
     <title>qf.com</title>
 </head>
 <body style="background-color:red;">
     <img src="http://10.0.0.3/K8s.png"/>
 </body>
 </html>

浏览器访问,发现盗链成功

3、防盗链配置

3.1、更改centos-2进行防盗链配置

 [root@centos-2 ~]# cat /etc/nginx/conf.d/default.conf 
 server {
         listen 80;
         server_name localhost;
         location ~ .*\.(gif|jpg|png|jpeg)$ {
                 root /usr/share/nginx/html;
                 index K8s.png;
         valid_referers server_names 10.0.0.2;   # 表示只允许10.0.0.2访问
             if ($invalid_referer){
                return 502;
             }
         }
 }

测试,发现,10.0.0.2能够进行访问,10.0.0.4不能够访问到

浏览器测试访问:

当然,实验中可能会遇到缓存问题,建议使用谷歌下Ctrl+Shift+N使用无痕模式实验。

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李学不完

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值