首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Nginx 如何配置防盗链

Nginx 如何配置防盗链

作者头像
Linux运维技术之路
发布2022-06-07 08:38:00
发布2022-06-07 08:38:00
7380
举报

需求:通常站点,都会想让自己网站的视频和图片,免被盗用,毕竟视频流量,花的都是白花花银子(土豪可以不用考虑)~~.

一、单刀直入,先上nginx配置文件

代码语言:javascript
复制
server {
        listen       80;
        server_name  www.test.com;
  root  /data/web/;
        index index.php index.html;
        access_log  /data/logs/nginx/biao.madacode.access.log  main;

  location /{
    root /home/data/;
  }

        error_page   404   /usr/local/nginx/html/404.html;
     
  location ~ .*\.(wma|wmv|asf|mp3|mp4|mmf|zip|rar|jpg|gif|png|swf|flv)$
  {
      valid_referers none blocked server_names *.test.com http://IP;
      if ($invalid_referer) {
    return 403;
      }
      expires    24h;
      access_log off;

  }
        location ~ /\.
        {
            deny all;
        }

}

二、防盗链核心配置文件解释

代码语言:javascript
复制
  location ~ .*\.(wma|wmv|asf|mp3|mp4|mmf|zip|rar|jpg|gif|png|swf|flv)$
  {
      valid_referers none blocked server_names *.test.com http://IP;
      if ($invalid_referer) {
    return 403;
      }
      expires    24h;
      access_log off;

  }

vaild_referers 有效的引用连接,如下,否则就进入$invaild_refere,返回403 forbiden。

1、none

"Referer" 来源头部为空的情况

2、blocked

"Referer"来源头部不为空,但是里面的值被代理或者防火墙删除了,这些值都不以http://或者https://开头.

3、server_names

"Referer"来源头部包含当前的server_names(当前域名)

三、模拟案例测试

1、添加 --referer 模拟引用,看结果直接403.证明上面配置是OK的

代码语言:javascript
复制
[root@test]# curl --referer http://baidu.com   -I http://www.test.com/temp/T19254/20190820/video_out_out/1/0011.mp4
HTTP/1.1 403 Forbidden
Server: Tengine
Date: Wed, 21 Aug 2019 09:54:44 GMT
Content-Type: text/html
Content-Length: 639
Connection: keep-alive
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux运维技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档