美文网首页
Nginx配置图片防盗链

Nginx配置图片防盗链

作者: Uzero | 来源:发表于2017-07-14 14:59 被阅读0次

    语法:valid_referers none | blocked | server_names | string ...;

    # none 表示无Referer值的情况(表示空的,也就是直接访问,比如直接在浏览器打开一个图片)

    # blocked 表示Referer值被防火墙进行伪装,如:“Referer: XXXXXXX”。

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

    # arbitrary string 任意字符串,定义服务器名或者可选的URI前缀.主机名可以使用*开头或者结尾,在检测来源头部这个过程中,来源域名中的主机端口将会被忽略掉

    # regular expression 正则表达式,~表示排除https://或http://开头的字符串.

    在Nginx Web服务器的配置文件nginx.conf  server中新增location,如下:

    切记不用加端口,比如valid_referers none blocked localhost:8888 127.0.0.1:8888

    location ~* \.(gif|jpg|swf)$ {

          # http://localhost:8888/a.html 通过

          # valid_referers none blocked localhost ;

          # http://localhost:8888/a.html 通过

          # http://127.0.0.1:8888/a.html 通过

          # valid_referers none blocked localhost 127.0.0.1 ;


          # http://localhost:8888/a.html 阻断

          # http://127.0.0.1:8888/a.html 阻断

          # valid_referers none blocked localhostt 127.0.0.2 ;

          # ????????????server_names 不懂,慎用 ?????????????????????

          # yes http://127.0.0.1:8888/a.html 阻断

          # no  http://localhost:8888/a.html 通过 ???

          # 域名能访问,ip被阻断;server_names不是很懂,求解???????????

          # 所有来至ybl和域名中包含google和baidu的站点都可以访问到当前站点的图片,事实并没有这个效果????

         valid_referers none blocked ybl server_names ~\.google\. ~\.baidu\.;

          if ($invalid_referer) {

                # rewrite ^/ http://localhost:8888/6055.png;

                return 403;

           }

    }

    如果来源域名不在这个列表中,那么$invalid_referer等于1,在if语句中返回一个403给用户

    相关文章

      网友评论

          本文标题:Nginx配置图片防盗链

          本文链接:https://www.haomeiwen.com/subject/aoanhxtx.html