Nginx防盗链

nginx防盗链

场景:

以图片为例

A网站想不经过B网站允许使用B网站的图片。A网站中直接用B网站上图片的链接,或者去B网站上点击图片右下下载并使用,这一行为称之为盗用。那么B网站要想阻止这一行为,可以采用防盗链来阻止。采用防盗链之后,A网站想盗用,就会提示404或者别的指定页面。

nginx防盗链配置

      location ~ .*\.(gif|jpg|jepg|png|PNG|bmp|flv|wma|wmv|swf|mp3|zip|rar|torrent)$ {
            valid_referers none blocked  www.myjpg.com  *.myjpg.com    //白名单   就是允许这两个域名访问
            if ($invalid_referer)  {
                    #rewrite跳转到那张图片,也可以直接return错误代码
                    rewrite ^/ http://www.***.com/static/imgs/error.jpg;//跳转一个图或者一个页面
                    #return 404;//报404也可以
                }
        }

 valid_referers配置 

Nginx配置中有一个指令valid_referers,用来获取Referer头域中的值,并且根据该值的情况给Nginx全局变量$invalid_referer的值,如果Referer头域中没有符合valid_referers指令配置的值,$invalid_referer变量将会被赋值为1,否则就是0

valid_referer指令的语法结构为:

valid_referers none | blocked | server_names | string ....;

  1. none  Referer头域不存在的请求,若果容许则加上 none
  2. blocked Referer头域的值被防火墙或者代理服务器删除或伪装的情况,如果容许则加上blocked。这种情况下,该头域的值不以“http://”或者“https://”开头
  3. string 采用正则表达式来匹配referer server_names 设置一个或多个URL,检测Referer头域的值是否是这些URL中的某个。
  4. 从nginx 0.5.33以后支持使用通配符“*”。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值