屏蔽迅雷盗链下载文件

不经意间发现绝大部分流量都是来自于迅雷,一看日志里都是在下载各种硕大的ISO文件,而且每个请求下周的size也不大。为了保证正常请求能有充足的资源处理,就得把这部分请求屏蔽掉。
统计了一下迅雷现在使用的UA多得不得了,很难简单的跟进UA来处理,所以只能直接找这些UA的交集做处理了,直接把UA匹配MSIE的就给封了,一般说来开源爱好者是不会使用IE的,在页面上说明一下影响也是OK的。
http段增加一个map,根据ua来创建一下agent变量,主要是为了在日志打出请求是否被屏蔽:


map $http_user_agent $agent {
    default  'false';
    ~*MSIE    'true';
}

server段新增localtion


<br />        location ~* \.iso$ {
            root   /mnt/nas/mirrors/;
            index  index.html index.htm;
            autoindex on;
            if ( $request_method ~* HEAD ) {
                   access_log off;
             }
            if ($agent = 'true') {
                 limit_rate 1k;
                 return 200;
            }

        }

这样对应被屏蔽的请求直接返回200.发现更新了配置后流量大降,可以看出对于一些个人站长如果做好放盗链本身也能大大降低自己的带宽开销。

此条目发表在nginx, Web server分类目录。将固定链接加入收藏夹。