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;  }}

301跳转

    if ($request_uri ~* "^/forum\.php\?mod=viewthread&tid=([0-9]+)")    {        set $tid $1;        rewrite .* /thread-$tid-1-1.html? permanent;    }