Nginx配置图片防盗链

2017-07-14  本文已影响0人  Uzero

语法: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给用户

上一篇下一篇

猜你喜欢

热点阅读