Nginx防盗链

Nginx防盗链


防止别人盗链的解决办法:

1.在图片。视频上面打水印

2.防火墙控制,根据IP控制

3.防盗链


防盗链解决办法:

1、根据http referer实现防盗链

  在HTTP协议中,有一个表头字段交referer,使用URL格式来表示从哪里来的链接到当前网页的资源,通过referer可以检测目标访问的来源网页,如果是资源文件,可以跟踪到显示它的网页地址,一旦检测出来源地址并不是本站就进行组织或者放回显示页面

  apache、nginx、lighttpd三者都支持根据 http referer实现防盗链

  

2、根据cookie处理.

  

3、通过加密变换访问路径实现防盗链

     lighttpd有类似的插件 mod_secdownload


####################################################################

 Nginx防盗链详细解说

valid_referers   none  blocked  www.lvnian.com lvnian.com;


其中 none表示空的来路,也就是直接访问,比如直接在浏览器打开一个图片;blocked表示被防火墙标记过的来路;server_names也就是域名了。0.5.33以后的版本中,可以用*.lvnian.com来表示所有的二级域名

一、针对不同的文件类型


location ~* \.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ {

     valid_referers none blocked *.lvnian.com lvnian.com;

     if ($invalid_referer)

 {

     #rewrite ^/ http://www.765h.com/error.html;

     return  403;

      }

}

第一行:wma|gif|jpg|png|swf|flv  表示对wma、gif、jpg、png、swf、flv后缀的文件实行防盗链

第二行:*.lvnian.com lvnian.com

表示对*.lvnian.com lvnian.com这2个来路进行判断(*代表任何,任何的二级域名),你可以添加更多if{}里面内容的意思是,如果来路不是指定来路就跳转到403错误页面,当然直接返回404也是可以的,也可以是图片。


二、针对不同的目录

location /img/ {

 root /data/img/;

    valid_referers none blocked *.lvnian.com lvnian.com;

  if ($invalid_referer) {

  rewrite ^/ http://www.lvnian.com/error.gif;

  #return 403;

  }

}


你可能感兴趣的:(nginx防盗链)