盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。

一.使用referer模块防止盗链

server {
   listen 8000;
   server_name 121.10.143.66;
   root html;
   index index.php index.html;

   valid_referers none blocked  域名;     --防止整个域名盗链接
   if ($invalid_referer) {
      return 404;
   }
}

 

二.使用AccessKey模块防止盗链

1.下载nginx第三方软件包

wget http://wiki.nginx.org/p_w_picpaths/5/51/Nginx-accesskey-2.0.3.tar.gz

tar xvf Nginx-accesskey-2.0.3.tar.gz

2.必须修改参数

vim nginx-accesskey-2.0.3/config

将HTTP_MODULES="$HTTP_MODULES $HTTP_ACCESSKEY_MODULE"

改为

HTTP_MODULES="$HTTP_MODULES ngx_http_accesskey_module"

3.配置,编译,安装

     ./configure  --prefix=/usr/local/tong/nginx --with-http_stub_status_module --without-http_upstream_ip_hash_module --with-pcre --with-http_addition_module --with-http_geoip_module --add-module=/home/tong/nginx-accesskey-2.0.3
    make

    make install

4.修改nginx参数

server {
   listen 8000;
   server_name 121.10.143.66;
   root html;
   index index.php index.html;

   location /abc {
        accesskey on;
        accesskey_hashmethod md5;
        accesskey_arg "key";
        accesskey_signature "12345$remote_addr";
     }

}

5.访问(不能下载)

Nginx防盗链_第1张图片

6.获取md5值

vim ../../html/get.php

$select ="12345";
$m=md5($select."客户端IP");
echo $m;
echo "\n";
?>

Nginx防盗链_第2张图片

Nginx防盗链_第3张图片