zoukankan      html  css  js  c++  java
  • (012)Nginx静态资源web服务_防盗链配置

      防盗链目的:防止资源被盗用

      防盗链设置首要方式:区别哪些请求是非正常的用户请求

      基于http_refer防盗链配置模块语法:
      Syntax:valid_referers none | blocked | server_names | string ...;
      Default:-
      Context:server,location

      none:表示允许没有带referer信息的访问

      blocked:表示referer信息不是标准的http://域名这种方式过来的允许访问

      server_names:允许配置的server_name过来的访问,可以是IP,域名,支持表达式配置

      Nginx的日志中配置了变量$http_referer,它的值是上一次访问的地址,所有第一次访问为空的,测试如下:

      新建/opt/app/code/test_refer.html,准备wei.png图片/opt/app/code/images/wei.png

    <html>
    <head>
        <meta charset="utf-8">
        <title>imooc1</title>
    </head>
    <body style="background-color:red;">
        <img src="http://192.168.7.151/wei.png"/>
    </body>
    </html>

      配置文件添加首页访问路径,和图片访问路径

    location ~ .*.(jpg|gif|png)$ {
        root  /opt/app/code/images;
    }
    
    location ~ .*.(html|htm)$ {
        root  /opt/app/code;
    }

      

      重新启动nginx,并访问:http://192.168.7.151/test_refer.html,访问了两次服务端

      

      查看日志,发现第一次的$http_referer是空,第二次值是第一次访问的地址,如下:

      修改配置文件,将server_name修改为服务器地址192.168.7.151,并valid_referers配置

    location ~ .*.(jpg|gif|png)$ {
        valid_referers none blocked 192.168.7.151;
        if ($invalid_referer) {
            return 403;
        }
        root  /opt/app/code/images;
    }  

      

      重新启动nginx服务,分别执行下面3条命令,查看是否允许访问

    curl -I http://192.168.7.151/wei.png
    curl -e "http://www.baidu.com" -I http://192.168.7.151/wei.png
    curl -e "http://192.168.7.151" -I http://192.168.7.151/wei.png

      

      

  • 相关阅读:
    mysqlsla 分析mysql慢查询日志
    MyBatis-DynamicSQL 动态SQL
    MyBatis-resultType 与 resultMap 中的几种返回类型
    MyBatis-${}与#{}
    MyBatis-parameterType 入参封装 Map 流程
    MyBatis-parameterType 取出入参值
    MyBatis-CURD
    第二十四篇-用VideoView制作一个简单的视频播放器
    第二十三篇-ubuntu18.04怎么下载播放器以及如何设置默认播放器
    第二十二篇-Guideline基准线
  • 原文地址:https://www.cnblogs.com/javasl/p/12864249.html
Copyright © 2011-2022 走看看