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

      

      

  • 相关阅读:
    cf1100 F. Ivan and Burgers
    cf 1033 D. Divisors
    LeetCode 17. 电话号码的字母组合
    LeetCode 491. 递增的子序列
    LeetCode 459.重复的子字符串
    LeetCode 504. 七进制数
    LeetCode 3.无重复字符的最长子串
    LeetCode 16.06. 最小差
    LeetCode 77. 组合
    LeetCode 611. 有效三角形个数
  • 原文地址:https://www.cnblogs.com/javasl/p/12864249.html
Copyright © 2011-2022 走看看