使用Apache打造完美限制的HTTP下载服务器

 更新时间:2016年08月24日 22:57:38   投稿:mdxy-dxy  
话说现在建站真不容易,想好好搞一个下载站,总会被人WC的采集,盗链,攻击,无人值守的垃圾站比苦心经营的站收入还要可观。所以保卫好自己的服务器是一件很重要的工作

一开始本来准备选择使用FTP作为下载服务器的,不过过了几天就发现很多都是通过盗链的方式来FTP下载。这下服务器在持续性全速提供上传,但是网站的页面浏览量却少得可怜。因为FTP天生不能放盗链的特性所以只能考虑放弃使用,最后决定用HTTP下载来替代。

   直接用HTTP服务器下载也不是很容易的事。最开始在IIS里面配置,IIS只能设定最大下载速度和最大连接数,这对于一些使用下载工具一来就开50+线程霸道下载的朋友明显是防不住的。网上搜了N久就发现一个用Delphi写的看不懂的ISAPI Filter以及别的收费软件若干。试过之后都起不了作用,也便放弃了,最后发现Apache有这些开源的功能模块,最终打造出完美限制的HTTP下载服务器。

首先说说完美限制的意思:防盗链、限制客户端下载线程数,限制下载带宽。下面一一介绍怎么在Apache里面实现这些功能。

   防盗链

   传统的防盗链都是通过Referer来判断用户来路的,不过这样的方法对于下载工具来说形同虚设,因为现在的下载工具早就能伪造Referer了。

   现在一些流行的防盗链的方式都是用在浏览页面的时候产生一个随机验证码,在用户点击连接的时候服务器会验证这个验证码是否有效从而决定是否允许下载。或者就是用某些方法把文件实际地址进行伪装。不过我觉得这些都不怎么好用,我用了一个简单有效的方式来实现防盗链。

   其实就是用Cookie,配合Apache的URL Rewrite模块很简单的就能实现防盗链下载。
   首先在浏览页面的时候,会向客户端发送一个特别的Cookie,例如“Site=3grjz.com“,盗链而来的将没有这个Cookie。

   在Apache的httpd.conf文件里面搜索:

   #LoadModule rewrite_module modules/mod_rewrite.so

  把它前面的#去掉,再找到<Directory />块,在里面加入类似如下代码:

复制代码 代码如下:

   <Directory />
  # Other configurations …
  RewriteEngine On   # 启动URL Rewrite引擎
   RewriteCond   %{HTTP_COOKIE} !^.*(?:Site=3grjz.com).*$   # 对于Cookie里面没有特殊记录的请求进行重定向

   RewriteRule ^.*$ error.html # 将非法访问重定向到错误页面
   </Directory>


  这样如果一个盗链而来的请求将会因为没有特殊Cookie而被重定向到错误页面,就算实际地址暴露也不怕。至于这个Cookie的内容是什么以及有效时间完全可以由管理员自己来设定,也就是说下载工具也没法伪造,从而防止了服务器资源被盗链的危险。

   限制客户端多线程下载操作流程

   限制多线程现在需要用到一个Apache的扩展模块mod_limitipconn,这里是作者的官方网站[url]http://dominia.org/djao/limitipconn2.html[/url],先下载适合自己版本的模块文件到Apache安装目录下的modules目录下面,然后在httpd.conf文件中搜索:

   #LoadModule status_module modules/mod_status.so

  把它前面的#去掉,再加入:

   ExtendedStatus On
  LoadModule limitipconn_module modules/mod_limitipconn.dll
 # 如果你下载的不是Win版,请把后面的文件名改为你所下载的文件名

复制代码 代码如下:

   <IfModule mod_limitipconn.c>

  <Location /> # 这里表示限制根目录,即全部限制,可以根据需要修改
   MaxConnPerIP 2 # 这里表示最多同时两个线程
   NoLimit html/* # 这里表示html目录下不受限制
   </Location>
  </IfModule>

  这样来自同一客户端的超过2个的线程请求将被拒绝,从而限制了客户端的多线程下载。

   限制下载带宽操作流程

   这个同样需要扩展模块支持,模块是mod_bw,在作者的官方网站[url]http://ivn.cl/apache/[/url]可以下载到。同样也是放入modules目录下面,然后在httpd.conf文件中加入:

   LoadModule bw_module modules/mod_bw.dll
  再找到<Directory />块,加入:

复制代码 代码如下:

   <Directory />
  # Other configurations …
  BandwidthModule On # 启动带宽限制
   ForceBandwidthModule On # 启动带宽限制
   MaxConnection all 2000 # 最大连接数2000
  Bandwidth all 200000 # 单个客户端最大带宽200KB
  </Directory>

  这样限制了同时最多2000个连接数,每个客户端最大200KB的下载带宽。

   到此,我们的完美限制的HTTP下载服务器就配置完成了,重新启动你的Apache这些功能便能生效了。因为Apache和这些模块都是开源免费的,我们不需要为此掏一分钱,不用去购买那些第三方的软件,只是需要多去了解一下这些软件的使用说明。不要一切都祈祷有现成美好的东西,自己动手做一次会有不一样的收获。

相关文章

  • 通过rsync+inotify实现数据的实时备份配置

    通过rsync+inotify实现数据的实时备份配置

    在前面的博文中,我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份
    2013-09-09
  • Ubuntu彻底卸载MySQL、Apache2和Php的方法教程

    Ubuntu彻底卸载MySQL、Apache2和Php的方法教程

    这篇文章主要给大家介绍了关于在Ubuntu系统下彻底卸载MySQL、Apache2和Php的方法教程,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起看看吧。
    2017-08-08
  • Linux服务器安装GRUB步骤

    Linux服务器安装GRUB步骤

    在本篇文章中我们给大家整理了Linux服务器安装GRUB的详细步骤以及相关注意事项,有需要的朋友们参考下。
    2018-09-09
  • 用DNSPod和Squid打造自己的CDN (三) 安装CentOS Linux

    用DNSPod和Squid打造自己的CDN (三) 安装CentOS Linux

    这篇文章主要介绍安装CentOS Linux的一些步骤,大家可以继续查看下一章
    2013-04-04
  • Linux命令行删除文件实操方法

    Linux命令行删除文件实操方法

    在本篇文章里小编给大家整理了一篇关于Linux命令行删除文件实操方法和技巧,需要的朋友们学习下。
    2019-03-03
  • Ubuntu18.04安装Nvidia显卡驱动教程(图文)

    Ubuntu18.04安装Nvidia显卡驱动教程(图文)

    这篇文章主要介绍了Ubuntu18.04安装Nvidia显卡驱动教程(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • LAMP服务器性能优化技巧之加速PHP

    LAMP服务器性能优化技巧之加速PHP

    目前LAMP (Linux + Apache + MySQL + PHP) 近几年来发展迅速,已经成为Web 服务器的事实标准。本文我们将介绍基于LAMP组合的服务器的性能优化技巧:加速PHP。
    2012-02-02
  • linux(centos)下SVN服务器如何搭建

    linux(centos)下SVN服务器如何搭建

    linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路!
    2015-09-09
  • 关于linux下core dump【总结】

    关于linux下core dump【总结】

    下面小编就为大家带来一篇关于linux下core dump【总结】。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Apache支持 shtml和include文件解析

    Apache支持 shtml和include文件解析

    这篇文章主要介绍了Apache支持 shtml和include文件解析的相关资料,需要的朋友可以参考下
    2015-07-07

最新评论