Linux下Apache并发连接数和带宽控制

 


   Apache的稳定性、性和性能以及低廉的价格正在赢得越来越多的市场份额,使用Linux Apache作网站服务器的朋友也越来越多,而Apache作为一种http服务,相比FTP总是不容易控制,特别是当网站以http方式提供软件/音乐下载时,若是每个用户都开启多个线程并没有带宽的限制,将很快达到http的最大连接数或者造成壅塞,使得网站的许多正常服务都无法运行。不过,Apache的使用者们早已开发出了mod_limitipconn和mod_bandwidth两个模块,来控制http的并发连接数和用户所能够使用的带宽,下面将以RedHat Linux 7.3 Apache 1.3.7来说明它们的使用方法。
  
  一、使用mod_limitipconn限制Apache的并发连接数
  
  mod_limitipconn可以控制每个IP地址同时连接服务器某一个目录的并发连接数,是一个非常有用的模块,其官方网页是http://dominia.org/djao/limitipconn.html,最新版本为for Apache 1.3.7的0.04,并且还有支持Apache 2.x的模块下载,由于本人使用Apache 1.3.7版本,所以请使用2.x版本Apache的朋友到其官方网站察看具体的使用方法。
  
  mod_limitipconn for Apache 1.3x提供三种安装方式,分别是tar包、rpm安装文件和rpm源文件,由于rpm包只能用在 RedHat 7.x 版本,并且不支持检测代理服务器,所以我们一般都使用tar包的安装方式。
  
  以员方式登陆服务器,然后在服务器上运行 wget http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz 将mod_limitipconn的tar包下载到服务器,然后按照再运行tar zxvf mod_limitipconn-0.04.tar.gz将tar包解压缩,会在当前目录下生成mod_limitipconn-0.04目录,然后cd mod_limitipconn-0.04进入此目录,下一步就是使用apxs将目录中的mod_limitipconn.c编译。这时,我们需要确定自己的Apache安装在那个目录,并且找到apxs命令放在哪里。
  
  通过命令whereis apxs,我们可以确定apxs命令的路径,如我的apxs命令所在为/usr/sbin/apxs,则输入/usr/sbin/apxs -c -i -a mod_limitipconn.c对mod_limitipconn.c进行编译,此命令会自动在你Apache的配置文件httpd.conf中加入需要的信息,并且将生成的mod_limitipconn.so模块拷贝到Apache的模块目录。不过为了确认此命令是否正常运作,请首先自己的Apache模块目录(我的是/usr/lib/apache),看内部是否含有mod_limitipconn.so文件,没有的话请将mod_limitipconn-0.04目录中生成的文件拷贝到此处。
  
  刚才命令自动生成的httpd.conf可能有些错误,在我的系统中,它将LoadModule limitipconn_module modules/mod_limitipconn.so放在了
  
  <IfDefine HAVE_PYTHON>
  LoadModule python_module modules/mod_python.so
  </IfDefine>
  之间,而将AddModule mod_limitipconn.c放在了
  
  <IfDefine HAVE_PYTHON>
  AddModule mod_python.c
  </IfDefine>
  之间,直接造成了mod_limitipconn模块不能正常运行,所以请将这两行分别移动到没有<IfDefine></IfDefine>的相应行中,然后请确认mod_status模块已经加载,并且在mod_status下添加了ExtendedStatus On这一行。这时我们的mod_limitipconn模块就安装完毕,下一步就是对某个目录进行并发连接数的设置了。
  
  mod_limitipconn可以对全局和虚拟主机进行不同的限制,其语法结构都是
  
  <IfModule mod_limitipconn.c>
  <Location /> #所限制的目录所在,此处表示主机的根目录
  MaxConnPerIP 3 #所限制的每个IP并发连接数为3个
  NoIPLimit image/* #对图片不做IP限制
  </Location>
  <Location /mp3> #所限制的目录所在,此处表示主机的/mp3目录
  MaxConnPerIP 1 #所限制的每个IP并发连接数为1个
  OnlyIPLimit audio/mpeg video #该限制只对视频和音频格式的文件
  </Location>
  </IfModule>
  当对全局进行限制时,将这段代码放在httpd.conf文件没有VirtualHost的地方,若是对某个虚拟主机进行限制,请将其放在<VirtualHost xxx.xxx.xxx.xxx>和</VirtualHost>之间,我们可以通过更改Location以及MaxConnPerIP方便的控制所限制的目录和并发连接数。
  
  最后,只要重新启动Apache服务,并发连接数的限制就可以生效。 
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值