热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nginx如何配置防盗链

Ng



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


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

    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;
    }


    }


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

      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的

        [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



        爱运维^_^爱分享






        推荐阅读
        • Jupyter Notebook多语言环境搭建指南
          本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
        • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
        • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
        • CSS Border 属性:solid 边框的使用详解
          本文详细介绍了如何在CSS中使用solid边框属性,包括其基本语法、应用场景及高级技巧,适合初学者和进阶用户参考。 ... [详细]
        • Requests库的基本使用方法
          本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
        • 如何将955万数据表的17秒SQL查询优化至300毫秒
          本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
        • 入门指南:使用FastRPC技术连接Qualcomm Hexagon DSP
          本文旨在为初学者提供关于如何使用FastRPC技术连接Qualcomm Hexagon DSP的基础知识。FastRPC技术允许开发者在本地客户端实现远程调用,从而简化Hexagon DSP的开发和调试过程。 ... [详细]
        • 回顾两年前春节期间的一个个人项目,该项目原本计划参加竞赛,但最终作为练习项目完成。独自完成了从编码到UI设计的全部工作,尽管代码量不大,但仍有一定的参考价值。本文将详细介绍该项目的背景、功能及技术实现。 ... [详细]
        • 使用TabActivity实现Android顶部选项卡功能
          本文介绍如何通过继承TabActivity来创建Android应用中的顶部选项卡。通过简单的步骤,您可以轻松地添加多个选项卡,并实现基本的界面切换功能。 ... [详细]
        • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
        • 软件测试行业深度解析:迈向高薪的必经之路
          本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
        • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
        • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
        • Web动态服务器Python基本实现
          Web动态服务器Python基本实现 ... [详细]
        • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
        author-avatar
        欢不是欢7
        这个家伙很懒,什么也没留下!
        PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
        Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有